互联网上有很多关于普通线路简化的信息,
https://www.jasondavies.com/simplify/
https://bost.ocks.org/mike/simplify/
http://geomalgorithms.com/a16-_decimate-1.html
http://mourner.github.io/simplify-js/
即。当简化点被预先知道时。 Visvalingam的算法,Douglas-Peucker算法,但是如果公差参数是固定的并且点是不知道的,那该怎么办呢。我有很多要点,我不想运行N * Log(N)算法一千次,而我希望它能逐步处理我的设置,交叉点并不重要,重点是减少数据集的大小,只有最小的视觉冲击,是否有一些聪明的方法来处理这个问题?
答案 0 :(得分:0)
如果交叉点无关紧要,并且您需要的只是视觉相似性(可能是在光栅化之后并且ε
接近像素大小),只需丢弃与减少的链足够接近的点就可以完成工作。
在伪代码中:
Let C be the original chain
Let R be the reduced chain (initially empty)
Add the first point of C to R
For every subsequent point p of C:
If distance(p, the last point of R) >= ε:
Add p to R
这种方法保证:
ε
ε
它不能保证: