Как я могу сделать две соединенные открытые дуги (без горизонтальной линии) на холсте HTML?

Я новичок в элементе холста в HTML и пытаюсь сделать что-то вроде ~, используя метод .arc().

Вот мой код: (или JSFiddle)

HTML

    <canvas height = "500" width = "500" id = "myCanvas"></canvas>

Javascript

    let canvas = document.getElementById('myCanvas');
    let ctx = canvas.getContext("2d");

    ctx.strokeStyle = '#000';
    ctx.fillStyle = "red";
    ctx.lineWidth = 3;

    ctx.beginPath();
    ctx.arc(50, 50, 50, 0, Math.PI, true);
    ctx.arc(150, 50, 50, 0, Math.PI);
    ctx.fill();
    ctx.stroke(); 

Я получаю горизонтальную линию, соединяющую начало и конец двух соединенных полукругов. Как я могу удалить это?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
83
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно moveTo начало второй дуги: сх + рад, су

let canvas = document.getElementById('myCanvas');
let ctx = canvas.getContext("2d");

ctx.strokeStyle = '#000';
ctx.fillStyle = "red";
ctx.lineWidth = 3;

ctx.beginPath();
ctx.arc(50, 50, 50, 0, Math.PI, true);
// move the pointer to the next drawing point without tracing anything
ctx.moveTo(150 + 50, 50);
ctx.arc(150, 50, 50, 0, Math.PI);
ctx.fill();
ctx.stroke();
<canvas height = "500" width = "500" id = "myCanvas"></canvas>

Другие вопросы по теме