Douglas-Peucker算法
根据具体情况,减少表示多边形曲线的点,可以减少内存,同时对曲线进行操作的时间。这里介绍经典的Douglas–Peucker算法,相关文献:Algorithms for the reduction of the number of points
required to represent a digitized line or its caricature(下载链接)。看完论文,算法的基本思想总结如下:
将曲线的第一个点(作为anchor)和最后一个点(作为floater)连成一条直线,计算所有中间点到该直线的最大距离Dmax。
如果Dmax<D(预先设置的阈值),则该段只保留第一个和最后一个点,该段处理结束;反之,用Dmax对应的中间点将曲线分为两段,对这两段重复第一步和第二步。
直到递归结束后,将保留的点依次连接,组成简化后的曲线。

我们常说的Douglas-Peucker算法就是论文中的Method 2,论文中还介绍了Method1。Method 2的点数会比 Method 1多一点,同时运行时间时间只有Method 1的5%左右,所以Method 1很少用。下面将简单介绍下论文中Method 1。
- 将曲线的第一个点(作为anchor)和最后一个点(作为floater)连成一条直线,计算中间所有点到该直线的最大距离Dmax。
- 如果Dmax

本文详细介绍了Douglas-Peucker算法,一种用于减少表示多边形曲线所需点数的经典算法,通过递归地分割曲线并计算中间点到直线的最大距离来实现曲线简化。

666

被折叠的 条评论
为什么被折叠?



