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中使用mongoengine操作MongoDB教程
Apr 24 Python
Python使用matplotlib简单绘图示例
Feb 01 Python
python实现扫描局域网指定网段ip的方法
Apr 16 Python
浅谈Pandas Series 和 Numpy array中的相同点
Jun 28 Python
Python 处理文件的几种方式
Aug 23 Python
python+selenium select下拉选择框定位处理方法
Aug 24 Python
python xlwt如何设置单元格的自定义背景颜色
Sep 03 Python
python return逻辑判断表达式实现解析
Dec 02 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
Feb 14 Python
Python + selenium + crontab实现每日定时自动打卡功能
Mar 31 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
Apr 30 Python
如何利用Python实现n*n螺旋矩阵
Jan 18 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初学者(入门学习经验谈)
2010/10/12 PHP
PHP函数strip_tags的一个bug浅析
2014/05/22 PHP
php链表用法实例分析
2015/07/09 PHP
PHP语法小结之基础和变量
2015/11/22 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
javascript中String对象的slice()方法分析
2014/12/20 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
手机图片预览插件photoswipe.js使用总结
2016/08/25 Javascript
AngularJS删除路由中的#符号的方法
2016/09/20 Javascript
微信小程序 引入es6 promise
2017/04/12 Javascript
关于使用js算总价的问题
2017/06/23 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
2017/11/08 jQuery
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
vue router+vuex实现首页登录验证判断逻辑
2018/05/17 Javascript
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
原生js实现弹幕效果
2020/11/29 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
Python标准库与第三方库详解
2014/07/22 Python
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
2015/03/19 Python
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
2015/12/25 Python
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
Python装饰器原理与简单用法实例分析
2018/04/29 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
Python3爬虫之自动查询天气并实现语音播报
2019/02/21 Python
Python selenium根据class定位页面元素的方法
2019/02/26 Python
Pycharm+Python+PyQt5使用详解
2019/09/25 Python
python实现简单的购物程序代码实例
2020/03/03 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
浅谈HTML5 & CSS3的新交互特性
2016/07/19 HTML / CSS
秋季运动会广播稿
2014/02/22 职场文书
交通事故调解协议书
2014/04/16 职场文书
119消防日活动总结
2014/08/29 职场文书
2016新春团拜会致辞
2015/08/01 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书