Заполнить HTML-холст, исключая произвольные (возможно, перекрывающиеся) круги - PullRequest
0 голосов
/ 01 июня 2011

Учитывая HTML-холст, к которому уже было обращено, каков наилучший способ закрасить весь холст, кроме заданных круговых областей? (в контексте: тени, кроме источников света)

Я надеялся, что это будет так же просто, как rect() с последующими arc() с, но AFAIK нет никакого способа "удалить" эти круглые секции после факта. Я могу приблизиться (http://jsfiddle.net/mW8D3/2/),, но перекрывающиеся области кругов заштрихованы (в стиле XOR, тогда как я хочу ИЛИ). Использование clip() имеет ту же проблему.

Я также пытался использовать globalCompositeOperation, но, похоже, не могу добиться того, чего хочу.

Есть идеи?

1 Ответ

1 голос
/ 01 июня 2011

Вы можете сначала создать теневое изображение на втором холсте и выбить из него отверстия с помощью globalCompositeOperation 'copy' и прозрачного fillStyle.

Примерно так: http://jsfiddle.net/mW8D3/4/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...