加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 16:18:56 所属栏目:Java 来源:网络整理
导读:我有二维闭合矢量路径,在 SVG paths-like syntax中指定,即这些路径包括直线和各种贝塞尔曲线.有什么像小,漂亮离散库(最好在C,Java或Ruby中,但是如果这个库是干净且易于使用的,则可以使用任何语言),允许使用这些路径执行联合,交集和减法等布尔运算? 到目前为
我有二维闭合矢量路径,在 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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读