【问题标题】:Boolean Operations on Cairo Paths?开罗路径上的布尔运算?
【发布时间】:2012-03-12 06:31:56
【问题描述】:

有没有办法在开罗通过布尔运算(例如并集、差集和交集)将两条路径组合在一起来构建路径?我正在开发一个使用 Cairo 进行渲染的矢量图形应用程序,并希望让我的用户能够以这种方式将路径组合在一起,但我无法在 Cairo 找到一种方法。

【问题讨论】:

    标签: graphics path vector 2d cairo


    【解决方案1】:

    我还没有找到使用 cairo 库执行此操作的方法。但这也是我一直在寻找的功能。当(例如)抚摸两条路径的组合时肯定会有所帮助 - ntd 提到的合成运算符似乎无法做到这一点。

    与此同时,我正在尝试为inkscape 编写脚本,并让inkscape 进行联合/差异化。我正在处理的问题可以接受,但绝对不适合你的问题。你有没有运气,无论是开罗还是任何其他 svg 库?经过几天的谷歌搜索,这似乎并不简单:/

    【讨论】:

    【解决方案2】:

    将路径与运算符结合起来对我来说没有任何意义。你从“线与曲线或弧”中得到什么?

    相反,您可以使用cairo_set_operator() 应用compositing operators:它将设置当前绘图操作(cairo_fill()cairo_stroke() 或其他)应如何与表面的旧内容混合。

    【讨论】:

    • 我的意思的一个例子是 Inkscape 通过布尔运算组合路径的方式:usinginkscape.com/node/34。我想这些效果中的大部分都可以通过一系列合成运算符来实现,除了两个图形路径相交的地方不一定有正确的线连接。
    • 我还是不明白这个问题:inkscape 本身从 0.46 版开始使用 cairo:wiki.inkscape.org/wiki/index.php/Release_notes/…
    猜你喜欢
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    • 2020-08-22
    • 2012-11-20
    • 2020-04-02
    • 2022-07-06
    相关资源
    最近更新 更多