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实现方法
Nov 18 Python
python函数的5种参数详解
Feb 24 Python
pygame游戏之旅 游戏中添加显示文字
Nov 20 Python
浅谈PySpark SQL 相关知识介绍
Jun 14 Python
详解Pandas之容易让人混淆的行选择和列选择
Jul 10 Python
python 发送json数据操作实例分析
Oct 15 Python
Python TCPServer 多线程多客户端通信的实现
Dec 31 Python
python标准库os库的函数介绍
Feb 12 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
Mar 11 Python
python logging 重复写日志问题解决办法详解
Aug 04 Python
Python脚本打包成可执行文件过程解析
Oct 20 Python
如何创建一个Flask项目并进行简单配置
Nov 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 addslashes 函数详细分析说明
2009/06/23 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
基于PHP实现生成随机水印图片
2020/12/09 PHP
Javascript 实现TreeView CheckBox全选效果
2010/01/11 Javascript
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
jquery实现动态操作select选中
2015/02/11 Javascript
js实现不提交表单获取单选按钮值的方法
2015/08/21 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
jQuery控制元素隐藏和显示
2017/03/03 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
2021/02/25 Javascript
解析Python编程中的包结构
2015/10/25 Python
动感网页相册 python编写简单文件夹内图片浏览工具
2016/08/17 Python
CentOS6.5设置Django开发环境
2016/10/13 Python
Python实现mysql数据库更新表数据接口的功能
2017/11/19 Python
用Python PIL实现几个简单的图片特效
2019/01/18 Python
详解python-图像处理(映射变换)
2019/03/22 Python
Python Gluon参数和模块命名操作教程
2019/12/18 Python
python pip安装包出现:Failed building wheel for xxx错误的解决
2019/12/25 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
自学python用什么系统好
2020/06/23 Python
Python控制鼠标键盘代码实例
2020/12/08 Python
HTML5 Video/Audio播放本地文件示例介绍
2013/11/18 HTML / CSS
new修饰符是起什么作用
2015/06/28 面试题
借款协议书
2014/09/16 职场文书
2015年优质护理服务工作总结
2015/04/08 职场文书
2015年小学数学教师工作总结
2015/05/20 职场文书
售房协议书范本
2015/08/11 职场文书