我一直在研究这个算法,而且它非常直接。但是,我对如何在封闭的多边形中使用它感到困惑。我见过的所有例子都涉及带开放端的线/曲线。如果我正确地将过程可视化绘制一条线然后迭代它以重新捕获多边形的细节将无法工作,因为它将始终至少在多边形的一侧打开。
我正在考虑编写一个首先创建4个点(最左边的TopLeft,TopRight,Bottomright和BottomLeft点)的实现,然后在这些点到索引之间的顶点上运行算法。
因此,如果底线在原始路径数组中的索引为40和80,那么我将在那里迭代并在40-80点捕获该线的相似度,然后移动到下一侧,直到所有边都完成
我一直都知道自己是个傻瓜而且过于复杂化,所以我想知道这是否是一个合理的实施?
我基本上试图复制下面看到的GPX数据减少错误:
答案 0 :(得分:3)
在Wikipedia上快速阅读算法后,您似乎可以通过简单的方式捕获封闭循环的简化形状。
使用起点'A'和终点'Z'调用方法相同。
修改算法,这样如果'A'和'Z'是相同的点,而不是找到最远点垂直到线AZ,它只是寻找最远的点。从开始/结束点到欧几里德距离。
现在算法在A-> M和M-> Z上递归,其中M是距离A最远的点(也是Z)。现在算法可以正常运行。