我有一个画布,上面有很多东西,现在我想填充一个定义为整个画布但不包括一些洞(我的洞是由弧形组成的复杂形状)的区域。
对于只有一个洞的情况,很简单:我首先用整个画布矩形创建一个子路径,然后再创建一个相反方向的子路径。因此,当我填充生成的路径时,我实际上填充了除洞以外的画布。
对于几个洞,只要我的洞不相交,它也能这样工作:如果相交,此方法会填充洞的相交部分,这不是所需的结果。
所以问题来了:如何填充带有相交洞的形状?
目前,我更愿意不尝试显式计算我的形状的联合,因为它们很复杂(涉及到弧线)。这就是为什么我没有使用getImageData()的原因。
下面是图形解释:
这应该非常快,因为源画布和洞都是动画的,但屏幕上几乎永远不会出现超过3个洞。
对于只有一个洞的情况,很简单:我首先用整个画布矩形创建一个子路径,然后再创建一个相反方向的子路径。因此,当我填充生成的路径时,我实际上填充了除洞以外的画布。
对于几个洞,只要我的洞不相交,它也能这样工作:如果相交,此方法会填充洞的相交部分,这不是所需的结果。
所以问题来了:如何填充带有相交洞的形状?
目前,我更愿意不尝试显式计算我的形状的联合,因为它们很复杂(涉及到弧线)。这就是为什么我没有使用getImageData()的原因。
下面是图形解释:
这应该非常快,因为源画布和洞都是动画的,但屏幕上几乎永远不会出现超过3个洞。