Используя javascript, я нарисовал несколько изображений многоугольника на моем холсте.Есть ли способ очистить не прямоугольную область в элементе холста?
Я хотел бы, исходя из пользовательских событий/кликов, иметь возможность очистить участок холста (одно из этих изображений многоугольника), который является неправильной формой, а не прямоугольником.
Итак, я не могу использовать clearRect() для своей цели.
Может ли кто-нибудь думать о том, как я могу это сделать?
По существу, я хотел бы сделать часть своего холста прозрачной, но это не прямоугольная форма ... Как только у меня есть область, с которой я могу заполнить() и stroke(), не могу ли я также clear() это ... Я знаю, что такая функция недоступна. Что делают люди, чтобы очистить неправильной формы разделы?
Я немного новичок в этом, поэтому извиняюсь заранее, если это звучит как глупый вопрос.
Alnitak, это интересно. Я действительно наткнулся на этот учебник, пока я читал, прежде чем публиковать здесь, и уже проверил следующее, что не сработало: ctx.clip(); ctx.clearRect (0,0, ctx.width, ctx.height) ;. Видите ли, я предположил, что если сначала закрепить, тогда только эта область будет очищена (не весь прямоугольник), но ничего не произошло, когда я сделал это (и, кроме того, я не знаю, как отключить мой регион после этого). Что у тебя было на уме? Я предполагаю, что это не то, что я пытался. Как использовать клип для CLEAR моего региона ... –
@Boriana см. Обновленный ответ. Возможно, вы не работали, потому что вы использовали 'ctx.width' вместо' canvasElement.width' – Alnitak
Вы были правы! Теперь он отлично работает :-). Я действительно использовал неправильную ширину и высоту в clearRect(). Я должен был это сразу увидеть. Спасибо за подробный ответ и отличную демонстрацию. –