首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >增量式线条简化

增量式线条简化
EN

Stack Overflow用户
提问于 2017-08-09 08:31:36
回答 1查看 300关注 0票数 3

互联网上有很多关于普通线路简化的信息,

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)算法M千次,相反,我希望它增量地处理我的集合,交集并不重要,重点只是减少数据集的大小,视觉影响最小。有没有什么聪明的方法来处理这个问题?

EN

回答 1

Stack Overflow用户

发布于 2017-08-10 05:17:51

如果交集无关紧要,你所需要的是视觉相似性(假设在光栅化之后,ε接近像素大小),那么简单地丢弃足够接近简化链的点就可以了。

在伪代码中:

代码语言:javascript
复制
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

这种方法所保证的:

减少链中每一段的长度将最少为ε

  • The,链之间的距离将至多为ε

它不能保证的是:

缺少self-intersections

  • Any类型的最优性(可能存在一个不同的链,它既在豪斯道夫距离上更接近,在点数上也更少)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45579887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档