SVG /矢量图形对象的布尔运算(联合,交集,减法)
我有2D封闭矢量路径,以类似SVG路径的语法指定-
即这些路径包括直线和各种Bezier曲线。是否有类似小型,精巧且离散的库(最好使用C,Java或Ruby,但如果此库干净且易于使用,则任何语言都可以使用)允许使用这些路径进行布尔运算(例如,并集,交集和减法)?
?
到目前为止,我发现的内容包括:
- 可以使用某种API调用或编写脚本来执行布尔2D路径操作的庞大而昂贵的商业矢量图形产品(例如Autodesk AutoCAD或Adobe Illustrator),对于我而言,这显然是过大的选择。
- Inkscape开发的内部lib2geom库缺少文档,绑定,存在一些编译问题,除了Inkscape本身之外,似乎没有其他项目使用它,并且看起来相当复杂。
- CGAL是一个庞大而又相当复杂的计算几何库,它在相当奇怪的对象空间中工作(即,您疯狂地混合了模板,命令式样式函数来对这些模板化的数据结构进行操作等),并且似乎没有对C ++以外的其他语言有健全的约束。与CGAL的Python绑定似乎已被放弃,对我来说看起来并不友好。
- JTS似乎以GIS为中心,只处理直线,而我需要处理类似SVG的Bezier曲线。
因此,问题是,是否还有其他小的,简单易用的库在处理类似SVG的路径上的布尔运算?
回答:
也许我缺少了一些东西,但是java.awt.geom
包中的类不适合您的需求吗?它们处理二维形状。在Area
类布尔运算专门处理:
一个
Area
对象存储和操作的2维空间中的封闭区域的与分辨率无关的描述。Area
与其他Area
对象结合使用时,可以对对象进行变形并执行各种“构造面积几何(CAG)”操作。CAG操作包括区域加法,减法,交集和异或。
以上是 SVG /矢量图形对象的布尔运算(联合,交集,减法) 的全部内容, 来源链接: utcz.com/qa/429234.html