我试图找到三角表面上两点之间的距离(大地距离)。它看起来像一个基本的操作,并非微不足道。所以我想知道是否有任何图书馆可以做到这一点?我的Google fo失败了,因此,我将不胜感激任何指点。
(我知道CGAL,scipy.spatial,但我在文档中找不到任何内容,如果我错过了那里的内容,请告诉我)
最佳答案
有许多实现可用于计算三角形网格上的测地距离。有些是近似的,有些是精确的。
1.快速行进法。这种方法是近似的,实际上,平均误差低于1%。您可以引用matlab中Gabriel Peyre的快速行进方法的实现。
http://www.mathworks.com/matlabcentral/fileexchange/6110-toolbox-fast-marching
[1]提出并在[2]中实现的
此方法是近似的,需要预处理过程。它比“快速行进”方法快。
[1] Joseph S. B. Mitchell,David M. Mount和Christos H. Papadimitriou。 1987年。离散测地线问题。 SIAM J.计算。 16,4(1987年8月),647-668。
[2] Vitaly Surazhsky,Tatiana Surazhsky,Danil Kirsanov,Steven Gortler,Hugues Hoppe。在网格上快速精确和近似的测地线。 ACM Trans。图形(SIGGRAPH),24(3),2005。
[3] Chen J. and Han,Y.1990。多面体上的最短路径。 InSCG '90:第六届年度计算几何专题研讨会论文集。 ACM出版社,美国纽约,360 {369
[4]辛世清和王国国。 2009。改进了Chen和Han的离散测地线算法。 ACM Trans。图形。 28、4,第104条(2009年9月),共8页。
[5] Crane K,Weischedel C,Wardedtzky M.加热中的测地线:一种基于热流计算距离的新方法[J]。 ACM图形交易(TOG),2013,32(5):152。