Python求平面内点到直线距离的实现


Posted in Python onJanuary 19, 2020

近期遇到个问题,需要计算平面内点到直线的距离,发现数学知识都还给老师了,度娘后找到计算方法,特此记录。

点到直线的计算公式:

Python求平面内点到直线距离的实现

通过公式推导,得到信息:

A:直线斜率

B:固定值-1

C:直线截距b

转换为Python代码实现为:

def get_point_line_distance(self, point, line):
  point_x = point[0]
  point_y = point[1]
  line_s_x = line[0][0]
  line_s_y = line[0][1]
  line_e_x = line[1][0]
  line_e_y = line[1][1]
  #若直线与y轴平行,则距离为点的x坐标与直线上任意一点的x坐标差值的绝对值
  if line_e_x - line_s_x == 0:
    return math.fabs(point_x - line_s_x)
  #若直线与x轴平行,则距离为点的y坐标与直线上任意一点的y坐标差值的绝对值
  if line_e_y - line_s_y == 0:
    return math.fabs(point_y - line_s_y)
  #斜率
  k = (line_e_y - line_s_y) / (line_e_x - line_s_x)
  #截距
  b = line_s_y - k * line_s_x
  #带入公式得到距离dis
  dis = math.fabs(k * point_x - point_y + b) / math.pow(k * k + 1, 0.5)
  return dis

以上这篇Python求平面内点到直线距离的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python encode和decode的妙用
Sep 02 Python
对numpy中数组转置的求解以及向量内积计算方法
Oct 31 Python
pandas每次多Sheet写入文件的方法
Dec 10 Python
Python实现批量执行同目录下的py文件方法
Jan 11 Python
itchat-python搭建微信机器人(附示例)
Jun 11 Python
python如何制作英文字典
Jun 25 Python
python 列表转为字典的两个小方法(小结)
Jun 28 Python
HTML的form表单和django的form表单
Jul 25 Python
python pyqtgraph 保存图片到本地的实例
Mar 14 Python
Python计算指定日期是今年的第几天(三种方法)
Mar 26 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
May 04 Python
在Python中如何使用yield
Jun 07 Python
Python PyPDF2模块安装使用解析
Jan 19 #Python
详解python中各种文件打开模式
Jan 19 #Python
python opencv如何实现图片绘制
Jan 19 #Python
python实现加密的方式总结
Jan 19 #Python
TensorFlow tensor的拼接实例
Jan 19 #Python
python通过opencv实现图片裁剪原理解析
Jan 19 #Python
Python 一行代码能实现丧心病狂的功能
Jan 18 #Python
You might like
PHP - Html Transfer Code
2006/10/09 PHP
php 短链接算法收集与分析
2011/12/30 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
2017/05/02 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
jquery tools之tooltip
2009/07/25 Javascript
ajax java 实现自动完成功能
2012/12/19 Javascript
jQuery获取浏览器中的分辨率实现代码
2013/04/23 Javascript
Underscore.js常用方法总结
2015/02/28 Javascript
简化版手机端照片预览组件
2015/04/13 Javascript
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
Jquery简单实现GridView行高亮的方法
2015/06/15 Javascript
AngularJS 防止页面闪烁的方法
2017/03/09 Javascript
深入理解JavaScript继承的多种方式和优缺点
2017/05/12 Javascript
Vue中计算属性computed的示例解读
2017/07/26 Javascript
Node.js使用MySQL连接池的方法实例
2018/02/11 Javascript
15个顶级开源JavaScript框架和库
2018/10/10 Javascript
详解vue项目接入微信JSSDK的坑
2018/12/14 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
2020/08/14 Javascript
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
Python实现对象转换为xml的方法示例
2017/06/08 Python
Python编程之Re模块下的函数介绍
2017/10/28 Python
Python装饰器的执行过程实例分析
2018/06/04 Python
python使用xlrd和xlwt读写Excel文件的实例代码
2018/09/05 Python
Python中collections模块的基本使用教程
2018/12/07 Python
Django多数据库的实现过程详解
2019/08/01 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
如何使用python写截屏小工具
2020/09/29 Python
文科毕业生自荐书范文
2014/04/17 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
2015年元旦演讲稿
2014/09/12 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
四则混合运算教学反思
2016/02/23 职场文书
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL