为了在球体上实现高性能动态寻路算法(在C ++中),我有兴趣在球体表面上执行增量约束delaunay三角剖分。现有的库似乎不够 - 我到目前为止能找到的最接近的是CGAL,它具有正确的拓扑空间但是度量空间错误。
图书馆应该有:
目前,我唯一真正的选择似乎是近似的(通过在2D欧几里德度量空间上使用投影并在Delaunay保证中提供权衡)或者编写我自己的选项,带来所有麻烦。在球形度量空间中是否存在约束delaunay三角剖分的库?
答案 0 :(得分:1)
由于现在标记为偏离主题(由于垃圾邮件?),我不妨给出至少一个全面的答案。
据我所知,截至2017年7月,有两种选择来计算球体上点的约束delaunay三角剖分。
第一个是libdts2(1)。它基于CGAL 2D delaunay三角剖分算法,并使用精确在球体上的有理点。不在球体上的点将捕捉到恰好在球体上的紧密有理点(2)。 它的缺点是使用4个辅助点,这些辅助点始终是三角测量的一部分。也不可能插入非常靠近北极的任何点。交叉约束的计算要么非常慢,要么只是近似的。
另一种选择是在(3)中实现所提出的算法。在这种方法中,点不必完全在球体上。遗憾的是,还没有代码可用,但有计划将其集成到CGAL(4)中。
因此,最好的办法是使用libdts2,直到GeometryFactory / INRIA发布他们的代码。这不应该造成很大问题,因为libdts2的接口在大多数方面类似于CGAL三角测量算法的接口。
如果感兴趣的是libdts2,您可以期待以下内容:
参考文献: