博客转载自:http://blog.sina.com.cn/s/blog_5d5c80840101bnhw.html

点到线段最短距离的运算与点到直线的最短距离的运算二者之间存在一定的差别,即求点到线段最短距离时需要考虑参考点在沿线段方向的投影点是否在线段上,若在线段上才可采用点到直线距离公式,如图1所示。

图1 (a)最短距离为点P与其在线段AB上投影C之间的线段PC

(b)最短距离为点P与端点B(或A)所构成的线段PB(或PA)

具体算法主要有以下三种:

1、方法——经典算法

该算法直接用高中时所学习到的解析几何知识对点到线段的距离进行求解。其基本思想是先判断点在线段端点、点在线上等等的特殊情况,逐步的由特殊到一般,当忽略点在线段上的特殊情况时,判断点到线段方向的垂线是否落在线段上的方法是通过比较横纵坐标的方式来判断,最后把不同的判断情况用不同的几何方式来进行处理计算得出结果。

由上面叙述的基本思路可以知道这种算法虽然很容易理解和接受,但从算法的实用性的角度分析还是有很大的缺点的,首先是算法复杂,计算量巨大,大量的比较判断、距离计算、角度计算等等,实际应用中往往是需要求由大量线段组成的折线到某点的最短距离,如此用这样的算法计算量是不能想象的。其次经典算法中使用的一些简化运算的函数不利于语言的重新包装,如果想换编程语言的话,就比较麻烦了。

2、方法二——面积算法

该方法主要是先判断投影点是否在线段上,投影点在线段延长线上时,最短距离长度为点到端点的线段长度;当投影点在线段上时,先使用海伦公式计算三角形面积,再计算出三角形的高,即为

python 点到线段的距离_点到线段的最短距离相关推荐

  1. 点到线段的距离_直线垂直,垂线的性质,点到直线的距离

    欢迎关注公z号:沈阳奥数 两条直线相交所成的四个角中,有一个角是直角时,就说这两条直线互相垂直,其中一条直线叫做另一条直线的垂线,它们的交点叫垂足. 如图,直线AB与CD垂直于点E,记作:AB⊥CD于 ...

  2. 计算点到道路的距离_在ArcMap中完成

    需求 现在有一批道路和一批点,如下图: 需要计算每个点到最近的道路的直线距离. 解决方法 要解决上述需要,可以直接在ArcMap中完成.只需要完成以下三个步骤: 使用[生成临近表]工具,生成每条道路和 ...

  3. 三维空间:点到线的距离,点到面上的投影,直线在平面上的投影直线方程(平面束)

    你好哦,这里是云切月斩(Echo_Fish),本文章如果能加深你对于高等数学知识点的理解,那么我将不胜荣幸!如果本文章存在错误请不吝赐教! 一.点到线的距离(已知一个点和直线的一般式) 已知点P(3, ...

  4. Cloudcompare 点到平面的距离以及点到平面的投影点

    Cloudcompare 点到平面的距离以及投影点坐标 引言 一.软件操作 二.源码解读 2.1 准备工作 2.2 计算距离 2.3 投影点坐标 引言 对比两组点云的相似度,一般都是使用距离来量化重合 ...

  5. 反向延长线段什么意思_关于线段的延长线的概念教学反思

    关于"线段延长线"概念教学一点反思 全日制沪科版初中数学七年级上册第四章有关"线段" . "射线" . "直线" &qu ...

  6. 点到曲线的距离_如何从“圆锥”曲线到圆锥曲线

    文章介绍 全文配图,便于理解,严谨推导放在最后. 提前说明关键步骤: 推导第一定义时:将两条焦半径利用切线长定理转换为到圆锥面两点距离. 推导第二定义时:将焦半径和到准线的距离利用垂直条件转化成圆锥轴 ...

  7. python 异常点检测 cook距离_异常检测算法汇总

    本文来自:https://github.com/Albertsr 第一部分:无监督异常检测 1. 算法 1.1 孤立森林(Isolation Forest) 算法论文: Isolation Fores ...

  8. python 两点之间的距离_手把手教你HTML5实现根据LBS定位到商家两点之间距离多少...

    转载链接:https://juejin.im/post/5e7e126b51882573c508be13 背景 最近在做一个类似支付宝口碑商家的功能模块,其中有个功能就是计算出用户与商家的距离,如下图 ...

  9. python 异常点检测 cook距离_[转载]Johnson-Cook本构模型及材料数据库

    Johnson-Cook 本构模型和断裂准则是 Johnson 和 Cook 在上个世纪八十年代提出的,被广泛应用于冲击领域,Johnson.Cook 等学者对等材料进行了不同应变率和温度下的霍普金森 ...

最新文章

  1. ES6箭头函数(节选自《ECMAScript 6 入门》)
  2. 由SGA组件内存移动导致前台业务超时问题处理过程
  3. php搭建后台 xampp_你还在用wordpress?|搭建独一无二个人网络日志发布平台
  4. Centos7安装JDK8以及环境配置
  5. 智能优化算法:磷虾群算法-附代码
  6. 智慧职教mooc学院计算机文化基础答案,智慧职教MOOC学院-刷课分析
  7. IP协议和IPX协议的区别
  8. mac 修改hosts 文件的方法
  9. android抽屉式listview,Android 抽屉效果的导航菜单实现
  10. 大学物理实验-仿真实验-示波器的原理
  11. srs直播 java开发,使用 SRS/OBS/VLC 快速搭建直播服务系统
  12. java list控件_java Swing中对于JList控件的使用(一)
  13. Hbuildx的快捷键集合
  14. HTML5期末大作业:手表商城网站设计——手表商城网站模板源码(17页) web期末作业设计网页_手表商城网页设计作业成品
  15. 猜数字小游戏(JAVA)
  16. 获取淘宝商品历史价格信息API(PHP,JAVA都可对接)
  17. The following packages have unmet dependencies: libx11-dev : Depends: libx11-6 (= 2:1.6.7-1+deb10u2
  18. BUUCTF-Crypto-凯撒密码爆破+中文电码+md5+猪圈密码WP
  19. JAVA docx/doc转html代码
  20. 如何选择专业、安全、高性能的远程控制软件

热门文章

  1. Android 自定义View课程表表格
  2. 自然语言处理经典必读论文Topic推荐-AMiner
  3. Java开发学习总结(基础篇)
  4. 如何强制使用独立显卡加速立创EDA专业版PCB
  5. spring boot actuator监控详细介绍一(超级详细)
  6. Cesium 拾取坐标偏移问题
  7. 计算机科学与技术学士论文,计算机科学与技术毕业论文
  8. 555时基芯片经典常见电路
  9. 用python爬虫下载视频_使用Python编写简单网络爬虫抓取视频下载资源
  10. insert into select语句与select into from语句