有没有适用于Java的几何库?(不是JTS)

14

我希望能够得到类似于C++中CGAL的东西——我想要对多边形进行凸分割或至少三角剖分。同时,它也必须是免费的。之前的一个问题建议使用JTS,但它似乎没有这些功能。


我建议任何人不要在3D几何中使用JTS。它有一个严重的缺陷,而且它只是不能计算Z坐标:交集、并集、面积等任何3D操作都因此无法工作。但2D几何似乎可以工作。 - DPM
4个回答

7
JTS支持德劳内三角测量,但不支持受约束的三角测量(孔):
http://lin-ear-th-inking.blogspot.com/2009/04/delaunay-triangulation-in-jts-111.html 对于受约束德劳内三角测量,您可以使用Poly2Tri。Poly2Tri运行良好,但无法三角化具有与轮廓或另一个多边形接触的孔的多边形。
目前我在Java中使用OpenGL Tesselator(glut)和java封装程序jogl (http://jogamp.org/) 进行三角测量。 您需要实现正确的回调并进行一些微调。
它们都不能满足所有需求,但到目前为止我还没有找到更好的。

1
我使用JOGL和来自http://www.informatik.uni-oldenburg.de/~trigger/的源代码实现了Delaunay三角剖分算法(使用ctrl+f triangle查找相关条目)。它是根据教育/个人许可证发布的,因此可能对您没有用,但对我来说已经足够好了。 - dimo414

3
GeoTools拥有相当广泛的几何处理算法库,但与JTS一样,它也是以地理信息系统为导向的。请参考http://www.geotools.org/

2

自2012年起,CGAL就有了由SWIG驱动的绑定。其中包括2D符合三角剖分和网格。请访问GitHub Wiki以获取更多信息。


1
您可以尝试使用GeoLib,这是一个优秀的几何包。

GeoLib不是免费的,这是其中一个限制。 - carrino

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接