如何在Fabric.js中填充两个对象的交集?

5

我正在使用Fabric.js创建一个简单的绘画应用程序。

其中一个我遇到问题的功能是填充工具

使用canvas.item(0).fill = "red",可以使用Fabric.js对对象进行颜色填充,但是我想要填充两个对象[A,B]的交集[C]。

Example

是否有人知道如何实现这一点?我一直在寻找关于如何实现此操作的示例和教程,许多指向'Flood Fill',但我认为它无法用Fabric.js实现。

任何帮助将不胜感激!

1个回答

2
当您可以获得整个画布的像素化栅格对象时,就可以实现泛洪填充。但是,如果您想留在矢量世界中,您需要进行布尔运算,以获取您的桶悬停在其上的所有形状的所有相交形状。之后,您只需设置该交集表面的背景颜色。
我不是fabricjs专家,所以我不知道它是否支持其中任何一种。对于具有布尔运算的JavaScript绘图库,请查看此问题

感谢@Christoph。你指引了我正确的方向。我实现了一个画布,用于保存由FabricJS创建的矢量图的栅格化表示,然后在其上运行了一次Flood Fill,将新颜色的像素作为图像放回到FabricJS画布中,因为在FabricJS中没有办法对两个或更多对象进行布尔运算(至少我不知道有这种方法)。 - Gary Torres

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接