Geodesic(Under Construction!)

Geodesic

「測地」。形容詞。曲面上的(連續)、網格上的(離散)。

計算幾何的常見主題,都可以推廣成測地版本,諸如測地距離、測地交點、測地凸包、測地三角剖分、測地最近鄰居。

計算學家習慣討論離散版本,也就是網格。

二維測地與三維測地,問題性質截然不同。二維測地:網格內部(或者多邊形內部),癥結在於如何繞過邊界。三維測地:網格表面(或者多面體表面),癥結在於如何穿越鄰面。

近期文獻主要討論二維,鮮少討論三維。

Geodesic Path(Under Construction!)

Geodesic Path / Geodesic Distance

「測地路徑」與「測地距離」。曲面上的最短路徑與最短距離。

經典範例是「大圓航線」:飛機在地球表面的飛行路線。

二維網格的測地路徑,就是直線,缺乏討論意義。

三維網格的測地路徑,就是網格攤平之後的直線。從各種攤平方式之中,找到最短直線。

儘管攤平方式有指數個,但是測地路徑擁有多項式時間演算法。

https://stackoverflow.com/questions/25814549/
1. exact O(nnlogn) 1987  https://code.google.com/archive/p/geodesic/
2. exact O(nn) 2009      https://sites.google.com/site/xinshiqing/knowledge-share
3. diffusion 2013        https://www.cs.cmu.edu/~kmcrane/index.html
4. edge flip 2020        https://nmwsharp.com/research/flip-geodesics/

演算法(Mitchell-Mount-Papadimitriou Algorithm)

Dijkstra's Algorithm。時間複雜度O(N²logN)。

演算法(Xin-Wang Algorithm)

時間複雜度O(N²logN)。

《Improving Chen and Han's algorithm on the discrete geodesic problem》

演算法(Diffusion)

《Geodesics in heat: A new approach to computing distance based on heat flow》

演算法(Edge Flipping)

大家習慣調整網格,測地路徑隨之變動。乾脆修改點邊面,把一條普通路徑打造成測地路徑。

《You Can Find Geodesic Paths in Triangle Meshes by Just Flipping Edges》

Geodesic Nearest Neighbor(Under Construction!)

2D Geodesic Nearest Neighbor

《Improved Dynamic Geodesic Nearest Neighbor Searching in a Simple Polygon》

我尚未找到實用的演算法。

2D Geodesic Nearest Neighbor

查無資料。

Geodesic Convex Hull(Under Construction!)

2D Geodesic Convex Hull

https://en.wikipedia.org/wiki/Relative_convex_hull

3D Geodesic Convex Hull

查無資料。

凸的定義不復存在。問題必須區分為面積最小包、周長最短包、……,諸如之類。

Geodesic Voronoi Diagram(Under Construction!)

2D Geodesic Voronoi Diagram

《A Nearly Optimal Algorithm for the Geodesic Voronoi Diagram in a Simple Polygon》

我尚未找到實用的演算法。

3D Geodesic Voronoi Diagram

查無資料。