我的github

How to triangulate/tesselate some shape in Java?(如何在Java中三角化/细化某些形状?)

https://stackoverflow.com/questions/23597434/how-to-triangulate-tesselate-some-shape-in-java/65970152

我想从GeoTools中细化国家形状,以便在地球表面上以3D显示。GeoTools内部使用JTS拓扑套件,看起来功能丰富。

它是否包含细分某些形状的工具?我看到有一个三角测量包,但不知道如何将其用于带孔的形状。

同样,我用它不仅仅是像这里那样连接现有顶点

它应该在形状内部填充多个顶点。

 更新

 我发现,JTS包含ConformingDelaunayTriangulationBuilder类,它允许以某种方式进行所需的细分,但效果不佳。首先,它只允许约束,这意味着需要额外的代码来从凹陷区域中删除三角形。此外,它还试图保留细分的Delaunay特性,这将导致创建许多附加部分。

最后,它会导致复杂形状(如国家和地区)的ConstraintEnforcementException无法使用。

 我还找到了“三角形”包,它是用C编写的,实现了Chew的第二个算法,运行良好

在此处输入图像描述

现在我想知道,它是移植到Java还是封装到Java中?

>> DelaunayTriangulationBuilder与VoronoiDiagramBuilder:外接三角形,一个是外接多边形。

posted on 2023-01-03 10:46  XiaoNiuFeiTian  阅读(200)  评论(0编辑  收藏  举报