java – SVG /矢量图形对象布尔运算(union,intersection,subtraction)

前端之家收集整理的这篇文章主要介绍了java – SVG /矢量图形对象布尔运算(union,intersection,subtraction)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有二维闭合矢量路径,在 SVG paths-like syntax中指定,即这些路径包括直线和各种贝塞尔曲线.有什么像小,漂亮&离散库(最好在C,Java或Ruby中,但是如果这个库是干净且易于使用的,则可以使用任何语言),允许使用这些路径执行联合,交集和减法等布尔运算?

到目前为止,我发现包括

>巨大而昂贵的商业矢量图形产品(如Autodesk AutoCAD或Adobe Illustrator)可以使用某种API或脚本进行布尔二维路径操作来调用,这显然是我的目的.
> Inkscape开发的内部lib2geom库,缺少文档,绑定,有一些编译问题,似乎被用于除了Inkscape本身以外的任何项目,看起来相当复杂.
> CGAL是一个巨大而相当复杂的计算几何库,它可以在非常奇怪的对象空间中工作(即,您有模糊的混合模式,命令式样式函数来对这些模板化数据结构等进行操作),并不似乎在C旁边有其他语言的固定绑定.与CGAL的Python绑定似乎被放弃,对我来说看起来不是很友好.
> JTS似乎是以GIS为中心的,只处理直线,而我需要处理像SVG一样的贝塞尔曲线.

所以,问题是,还有其他小的,好的&容易的库浮动以处理类似SVG的路径上的布尔运算?

解决方法

也许我错过了一些东西,但java.awt.geom程序包中的类是否适合您的需要?他们处理二维形状; Area类专门处理布尔运算:

An Area object stores and manipulates a resolution-independent description of an enclosed area of 2-dimensional space. Area objects can be transformed and can perform varIoUs
Constructive Area Geometry (CAG) operations when combined with other Area objects. The CAG operations include area addition,subtraction,intersection,and exclusive or.

原文链接:https://www.f2er.com/java/125778.html

猜你在找的Java相关文章