资讯专栏INFORMATION COLUMN

道格拉斯-普克 抽稀算法 附javascript实现

CNZPH / 1460人阅读

摘要:道格拉斯普克抽稀算法,是用来对大量冗余的图形数据点进行压缩以提取必要的数据点。经道格拉斯普克法压缩后得到的图形如图所示。但道格拉斯普克法较垂距法复杂且通常编程实现时需要采用递归方有一定的难度。

道格拉斯-普克抽稀算法,是用来对大量冗余的图形数据点进行压缩以提取必要的数据点。该算法实现抽稀的过程是:先将一条曲线首尾点虚连一条直线,求其余各点到该直线的距离,取其最大者与规定的临界值相比较,若小于临界值,则将直线两端间各点全部舍去,否则将离该直线距离最大的点保留,并将原线条分成两部分,对每部分线条再实施该抽稀过程,直到结束。抽稀结果点数随选取限差临界值的增大而减少,应用时应根据精度来选取限差临界值,以获得最好的效果。

以下转载自:垂距法与道格拉斯-普克法删除冗余顶点效率的比较

道格拉斯- 普克法可描述为:将一条曲线首末顶点虚连一条直线 ,求出其余各顶点到该直线的距离 ,选其最大者与规定的限差相比较 ,若小于等于限差 ,则将直线两端间各点全部删去;若大于限差 ,则离该直线距离最大的顶点保留 ,并以此为界 ,把曲线分为两部分 ,对这两部分重复使用上述方法 ,直至最终无法作进一步的压缩为止 (见图 3)。

道格拉斯 2 普克法有一个十分突出的优点 ,即它是一个整体算法 ,在一般情况下可保留较大弯曲形态上的特征点。经道格拉斯-普克法压缩后得到的图形如图 4所示。由于该算法可准确删除小弯曲上的定点 ,故能从体上有效地保持线要素的形态特征。正是因为道格拉斯-普克法具有这样突出的优点 ,所以已经在线要素地自动制图中得到了较广泛的应用。但道格拉斯- 普克法较垂距法复杂 ,且通常编程实现时需要采用递归方 ,有一定的难度。

转载end

以下是javascript版本的实现




   
   DouglasPeucker    


   

宣传下我的区块管理框架Magix:https://github.com/thx/magix

欢迎试用Magix、star与fork

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/80047.html

相关文章

  • Canvas 文字碰撞检测并抽稀

    摘要:所以就利用文字的宽度除以文字个数计算个大概为该文字在中所占据的范围。在取点位坐标作为最小范围时,按照以下方式设置会比较准确。 需求背景 一般在做地图相关的需求是才会用到文字抽稀,我也是在为公司的地图引擎实现一个功能时才实现了该方法,在这里将其简化了,就在普通的 Canvas 上进行操作,并没有引入地图概念 效果 showImg(https://s2.svend.cc/post/text...

    2i18ns 评论0 收藏0
  • Canvas 文字碰撞检测并抽稀

    摘要:所以就利用文字的宽度除以文字个数计算个大概为该文字在中所占据的范围。在取点位坐标作为最小范围时,按照以下方式设置会比较准确。 需求背景 一般在做地图相关的需求是才会用到文字抽稀,我也是在为公司的地图引擎实现一个功能时才实现了该方法,在这里将其简化了,就在普通的 Canvas 上进行操作,并没有引入地图概念 效果 showImg(https://s2.svend.cc/post/text...

    wua_wua2012 评论0 收藏0
  • JavaScript中的算法10道面试常见算法题解决方法和思路)

    摘要:中的算法附道面试常见算法题解决方法和思路关注每日一道面试题详解面试过程通常从最初的电话面试开始,然后是现场面试,检查编程技能和文化契合度。值得记住的数组方法有和。一个好的解决方案是使用内置的方法。 JavaScript中的算法(附10道面试常见算法题解决方法和思路) 关注github每日一道面试题详解 Introduction 面试过程通常从最初的电话面试开始,然后是现场面试,检查编程...

    Cruise_Chan 评论0 收藏0
  • 排序算法分析总结(js实现

    摘要:本文对一些排序算法进行了简单分析,并给出了的代码实现。平均时间复杂度不好分析,它是冒泡排序是稳定的排序算法。冒泡排序是原地排序算法原地排序指的是空间复杂度是的排序算法。归并排序,会将数组从中间分成左右两部分。 本文对一些排序算法进行了简单分析,并给出了 javascript 的代码实现。因为本文包含了大量的排序算法,所以分析不会非常详细,适合有对排序算法有一定了解的同学。本文内容其实不...

    liaoyg8023 评论0 收藏0
  • 50道JavaScript基础面试题(答案)

    摘要:事件中属性等于。响应的状态为或者。同步在上会产生页面假死的问题。表示声明的变量未初始化,转换为数值时为。但并非所有浏览器都支持事件捕获。它由两部分构成函数,以及创建该函数的环境。 1 介绍JavaScript的基本数据类型Number、String 、Boolean 、Null、Undefined Object 是 JavaScript 中所有对象的父对象数据封装类对象:Object、...

    huaixiaoz 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<