Php 多边形内最短路径算法/伪代码

Php 多边形内最短路径算法/伪代码,php,algorithm,polygon,Php,Algorithm,Polygon,我有一个由X,Y点数组表示的多边形(在PHP中)。我希望找到点A和点B之间多边形内部的最短路径。实际上,我有一个任意区域,定义为简单多边形,我希望知道通过该区域的距离(例如,将其视为表示轨迹的多边形-我希望估计轨迹的长度) 寻找伪代码或一些从哪里开始的提示。除了一些关于三角测量和漏斗算法的难以理解的论文外,我在互联网上搜索过,似乎运气不好。谷歌搜索多边形最短路径会找到很多有用的链接。对一种算法的一个很好的描述是(用一个小程序来完成算法的动画制作)。许多算法都是针对一个更复杂的问题,即允许多边形中

我有一个由X,Y点数组表示的多边形(在PHP中)。我希望找到点A和点B之间多边形内部的最短路径。实际上,我有一个任意区域,定义为简单多边形,我希望知道通过该区域的距离(例如,将其视为表示轨迹的多边形-我希望估计轨迹的长度)

寻找伪代码或一些从哪里开始的提示。除了一些关于三角测量和漏斗算法的难以理解的论文外,我在互联网上搜索过,似乎运气不好。

谷歌搜索多边形最短路径会找到很多有用的链接。对一种算法的一个很好的描述是(用一个小程序来完成算法的动画制作)。许多算法都是针对一个更复杂的问题,即允许多边形中有洞的问题。对于简单多边形的情况,它们可以在不作更改的情况下使用。(实际上,您的问题可以被视为通过一般多边形查找路径的特例,其中所有孔(障碍物)与边共享一个点。)


我认为最好的方法是通过多边形顶点的可见性图以及起点和终点(如果它们还不是顶点)定义的空间进行A*搜索。

一个简单的算法使用这样一个事实,即路径必须从反射顶点移动到反射顶点(第一步和最后一步除外)。因此,使用所有反射顶点以及起点和终点绘制图形,并使用标准最短路径算法来查找最短路径。我有一个很短的Mathematica代码来完成所有这些,并且很快会在displastions.wolfram.com网站上发布一个演示。如果您需要代码,请给我发一条消息。

听起来像是家庭作业……谷歌上的查找插入排序、合并排序为什么这个标签是java、php和c?@Lawrence Cherone:这些排序算法与路径查找有什么关系?问题的思路是一样的,它是关于优化的。使用给定单位/值进行排序的最短路线/最短时间。你真的认为你的导师不想看到一个点到另一个点的代码吗?你的多边形有什么特别的特征吗,或者是一个完全凹的多边形?