3

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

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

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

众所周知,我自己也很傻,而且事情过于复杂,所以我想知道这是否是一个合理的实现?

我基本上是在尝试复制下面看到的 GPX 数据缩减实施:

在此处输入图像描述 在此处输入图像描述

4

1 回答 1

5

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

调用起点'A'和终点'Z'相同的方法。

修改算法,如果'A'和'Z'是同一个点,而不是找到垂直于线AZ的最远点,它只是根据距起点/终点的欧几里得距离寻找最远的点。

现在算法在 A->M 和 M->Z 上递归,其中 M 是离 A 最远的点(也是 Z)。现在算法可以正常运行了。

于 2012-07-23T21:20:48.543 回答