douglas-peucker算法:了解多义经的用法

Gre*_*g G 3 c# algorithm math

我一直在研究这个算法,它的接缝非常简单。但是,我对如何在封闭的多边形中使用它感到困惑。我见过的所有示例都处理带有开放式末端的线/曲线。如果我正确地可视化了绘制单个线条,然后对其进行迭代以重新捕获多边形的细节的过程,将无法正常工作,因为它始终至少会在多边形的一侧保持打开状态。

我正在考虑编写一个实现程序,该实现程序首先取得4个点(最远的topLeft,TopRight,Bottomright和BottomLeft点),然后在这些点之间的顶点上运行算法,以达到点索引。

因此,如果底线在原始路径数组中的索引为40和80,那么我将在那儿进行迭代,并在点40-80上捕获该线的相似性,然后将它们移到另一侧,直到所有边都完成。

众所周知,我会自欺欺人,并且会使情况变得复杂,所以我想知道这是否合理?

我基本上是在尝试复制如下所示的GPX数据减少影响:

在此处输入图片说明 在此处输入图片说明

Xan*_*tix 5

Wikipedia上快速阅读算法后,似乎可以以一种简单的方式捕获封闭循环的简化形状。

在起点“ A”和终点“ Z”相同的情况下调用该方法。

修改算法,以便如果“ A”和“ Z”是同一点,而不是找到与直线AZ 垂直的最远点,而是根据起点/终点的欧几里得距离寻找最远的点。

现在,该算法在A-> M和M-> Z上重复进行,其中M是距A(也是Z)最远的点。现在该算法可以正常运行。