**已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。
我们不允许问题寻求书籍、工具、软件库等的建议。您可以编辑问题,以便使用事实和引文来回答。
上个月关门了。
Improve this question
我正在尝试求三角曲面上两点之间的距离(测地距离)。这看起来像是一个基本的操作,并不是微不足道的。所以我想知道是否有任何库可以做这个?我的谷歌fo失败了,所以我会非常感谢任何指针。
(我知道CGAL,scipy.spatial,但我在文档中找不到任何内容,如果我遗漏了什么,请告诉我)
2条答案
按热度按时间w80xi6nr1#
在三角形网格上计算测地距离有很多种实现方式,有些是近似的,有些是精确的。
1.快速行进法,该方法是近似的,实际平均误差在1%以下,可参考Gabriel Peyre在matlab中实现快速行进法。http://www.mathworks.com/matlabcentral/fileexchange/6110-toolbox-fast-marching
[1]张文祥,1997,离散测地线问题,国立台湾大学土木工程研究所硕士论文,台北。
[2]王晓波,王晓波.基于网格的快速精确测地线算法.计算机图形学学报,2005(1).
[3]陈杰,韩永,1990.多面体上的最短路径.在SCG '90:第六届计算几何学年会论文集。ACM出版社,纽约,纽约,美国,360{369
[4]辛士庆, Realm 进.2009.离散测地线问题的改进陈和韩算法. ACM学报.图. 28,4,第104篇(2009年9月),8页.
[5]起重机K,Weischedel C,Wardetzky M.《热量中的测地线:一种基于热流的距离计算新方法[J].计算机图形学报,2013,32(5):152.
am46iovg2#
仅对wxnfifth的先前答案进行补充,即Fast marching method不能单独应用,而是作为接收测地线路径的良好近似的第一步,其被如下迭代地改进:
1.组成包含路径的现有近似值的三角形带。
1.在条带中找到最短路径,这是一个可以在线性时间内精确解决的任务,例如通过Wolfgang Mulzer的Shortest Paths in Polygons方法。
1.如果该路径经过三角形条带边界上的顶点,则考虑沿着该顶点的另一侧的路径,并且如果该路径较短,则更新该条带,并且从步骤2重新开始该算法。
至于实现它的库,可以考虑开源的MeshLib,特别是函数computeSurfacePath,甚至有一个简短的video显示了它在一些示例网格上的工作。