Я обнаружил, что существует метод clearRect ()
, но не может найти ни одного, чтобы очистить дугу (или полный круг).
Есть ли способ очистить дугу на холсте?
Нет, после того, как вы нарисовали что-то на холсте, нет объекта для очистки, только пиксели, которые вы нарисовали. Метод clearRect
не очищает ранее нарисованный объект, он просто очищает пиксели в пространстве, заданном параметрами. Вы можете использовать метод clearRect
для очистки дуги, если вы знаете прямоугольник, который ее содержит. Это, конечно, очистит любые другие пиксели в области, поэтому вам придется перерисовать их.
Редактировать: MooGoo дал гораздо лучший ответ ниже
Нет clearArc
, однако вы можете использовать составные операции для достижения того же результата
context.globalCompositeOperation = 'destination-out'
Согласно MDC эффект от этого параметра
Существующий контент сохраняется там, где он не перекрывается новая форма.
https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Canvas_tutorial/Compositing
Таким образом, любая заполненная фигура в этом режиме приведет к удалению текущего содержимого холста.