scipy 三角形网格上的测地线计算?[已关闭]

q9rjltbz  于 2022-11-09  发布在  其他
关注(0)|答案(2)|浏览(198)

**已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。

我们不允许问题寻求书籍、工具、软件库等的建议。您可以编辑问题,以便使用事实和引文来回答。
上个月关门了。
Improve this question
我正在尝试求三角曲面上两点之间的距离(测地距离)。这看起来像是一个基本的操作,并不是微不足道的。所以我想知道是否有任何库可以做这个?我的谷歌fo失败了,所以我会非常感谢任何指针。
(我知道CGAL,scipy.spatial,但我在文档中找不到任何内容,如果我遗漏了什么,请告诉我)

w80xi6nr

w80xi6nr1#

在三角形网格上计算测地距离有很多种实现方式,有些是近似的,有些是精确的。
1.快速行进法,该方法是近似的,实际平均误差在1%以下,可参考Gabriel Peyre在matlab中实现快速行进法。http://www.mathworks.com/matlabcentral/fileexchange/6110-toolbox-fast-marching

  1. MMP方法是由[1]提出并在[2]中实现的,该方法是精确的,其代码是x ~ 1 e ~ 1f ~ 1x,与Ante的评论相同,缺点是当网格很大时,MMP方法将消耗大量的内存,为O(n^2),n为顶点数。
  2. CH方法是文献[3]中提出的一种改进的方法,在文献[4]中得到了实现,该方法比MMP方法具有更高的精度和更少的内存消耗,代码以https://sites.google.com/site/xinshiqing/knowledge-share实现
  3. Heat方法是文献[5]中提出的一种方法,它是在https://github.com/dgpdec/course中实现的,这种方法是近似的,需要一个预处理过程,它比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.
am46iovg

am46iovg2#

仅对wxnfifth的先前答案进行补充,即Fast marching method不能单独应用,而是作为接收测地线路径的良好近似的第一步,其被如下迭代地改进:
1.组成包含路径的现有近似值的三角形带。
1.在条带中找到最短路径,这是一个可以在线性时间内精确解决的任务,例如通过Wolfgang Mulzer的Shortest Paths in Polygons方法。
1.如果该路径经过三角形条带边界上的顶点,则考虑沿着该顶点的另一侧的路径,并且如果该路径较短,则更新该条带,并且从步骤2重新开始该算法。
至于实现它的库,可以考虑开源的MeshLib,特别是函数computeSurfacePath,甚至有一个简短的video显示了它在一些示例网格上的工作。

相关问题