有没有办法通过 Cairo 组合两个路径,如并集、差集和交集等布尔运算?我正在开发一个矢量图形应用程序,使用 Cairo 进行渲染,并希望使用户能够以这种方式组合路径,但我找不到在 Cairo 中实现它的方法。
我还没有找到使用cairo库实现这一点的方法。但这是我一直在寻找的功能。当(例如)描边两个路径的组合时,ntd提到的混合运算符似乎无法做到这一点,这将绝对有所帮助。
与此同时,我正在尝试编写inkscape脚本,并让inkscape执行联合/差异操作。对于我正在解决的问题来说可以接受,但肯定不适用于你的问题。您是否已经尝试过使用cairo或任何其他SVG库?经过几天的搜索,似乎并不容易 :/
使用运算符组合路径对我来说毫无意义。从“线条 AND 曲线 OR 弧线”中你能得到什么?
相反,您可以使用cairo_set_operator()
应用合成运算符:它将设置当前绘图操作(无论是cairo_fill()
、cairo_stroke()
还是其他任何操作)与表面旧内容的混合方式。