Группы прозрачности в CanvasRenderingContext2D

Есть ли способ объединить несколько операций рисования в контекст рендеринга 2D холста таким образом, чтобы оникомбинированный результат составлен на предыдущем содержании холста, в отличие от каждой операции рисования, составляемой самостоятельно?

Одно из применений: я хотел бы нарисовать полупрозрачную линию с помощью наконечника стрелки и хотел бы избежать повышенной непрозрачности в тех областях, где линия и наконечник стрелки перекрываются.

Многие другие модели рендеринга поддерживают такие функции. SVG имеетнепрозрачность группы настройка, описанная в разделе 14.5.PDF ссылка описывает «Группы прозрачности» в разделе 7.3. Во многих графических приложениях пользователь может создавать слои, а затем составлять их в целом.

Я думаю, я мог бы установить второй невидимый холст, который будет использоваться как изображение вне экрана, отрендерить мой контент и затем использоватьglobalAlpha составить результат на основной холст с желаемой прозрачностью. Но я надеюсь, что есть более элегантное решение, даже если я не смог найти его в документации до сих пор.

Объединение нескольких путей в CanvasRenderingContext2D для заполнения и обводки в виде набора очевидно, имеет в виду аналогичную цель. Но в центре внимания, как представляется, как выполнять логические операции над путями, вероятно, способклипер Является ли. Так что для этого поста я не заинтересован в манипулировании путями заранее; Я хочу иметь возможность рисовать каждый штрих, как обычно.

Ответы на вопрос(2)

Ваш ответ на вопрос