第 8 章:CGAL 2D Polyline Simplification(2D 折线简化)

1 引言

折线简化是一个减少折线顶点数量的过程,同时尽量保持整体形状不变。

保持拓扑结构的折线简化意味着不会引入新的交叉点,也不会改变多边形的嵌套层级:岛屿不会与简化后的海岸线相交,且岛屿仍然保持在水域内。

本包实现的方法基于文献[1],它可以简化任意集合的折线,无论是开口还是闭合的,且这些折线可能相互或自身相交。该方法通过迭代地将两条边 (p,q)(p,q)(p,q) 和 (q,r)(q,r)(q,r) 替换为单条边 (p,r)(p,r)(p,r),即从某条折线上移除顶点 qqq 来简化折线集合。在简化过程中,该算法保证折线集的拓扑结构保持不变,确保移除顶点不会引入新的交叉点。

顶点的移除顺序由用户提供的**代价函数(cost function)**确定,该函数计算简化误差,衡量原始折线与去除该顶点后的折线之间的偏差。

当用户定义的停止条件满足时(例如达到期望的顶点数量或最大简化误差),算法终止。

该折线简化算法基于第2章“二维三角剖分”中的一个三角剖分类,具体是 Constrained_triangulation_plus_2。该数据结构允许移除折线约束上的顶点,同时保持这些顶点所在点集不变。由于这是一个三角剖分,基于剖分中与顶点相邻的顶点集合,可以高效地进行拓扑检查。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

《雨声》

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值