首页 / OpenLayers / 使用示例
Chaikin 曲线平滑
把折线的每个折角切掉一点,重复几次就得到顺滑曲线。
源码与运行效果
说明
Chaikin 是一种割角平滑:每段取 1/4、3/4 两个分割点连成新折线,重复若干次后折角被磨圆。OpenLayers 不内置该算法,直接对坐标数组迭代即可。
红线是原始折线,蓝线是平滑结果,红点是原始顶点。滑杆控制迭代次数,每轮顶点数大约翻倍,平滑越彻底偏离原始折线也越多。
要点
- 端点固定不动,只处理中间线段。
- 迭代超过四次视觉收益很小,顶点数却会翻十几倍。
lineString.setCoordinates()自动触发重绘,不需要手动changed()。
闭合环要连同首尾段一起处理,否则接缝处会留下一个尖角。