使用二维网格离散化可找到基于欧几里得最短路径,这可以通过Theta*算法实现。
另一种(更常用的)方法是基于标准的4向或8向路径查找(左图),然后进行“拉弦”优化。最常用的算法是"Funnel algorithm"。
请注意,这些方法都不能保证产生全局最短路径。此外,这些假设您将世界表示为网格;如果您将其表示为一组凸多边形,则其他算法更合适。
这是一个有多边形障碍物的二维欧几里得最短路径问题。
若要使用算法求解,请参考以下两个参考文献:
Hershberger, John; Suri, Subhash (1999), "An optimal algorithm for Euclidean shortest paths in the plane", SIAM Journal on Computing 28 (6): 2215–2256, doi:10.1137/S0097539795289604.
Kapoor, S.; Maheshwari, S. N. (1988), "Efficient algorithms for Euclidean shortest path and visibility problems with polygonal obstacles", Proc. 4th ACM Symposium on Computational Geometry, pp. 172–182, doi:10.1145/73393.73411, ISBN 0-89791-270-5.