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 相关文章推荐
python3实现读取chrome浏览器cookie
Jun 19 Python
python中requests库session对象的妙用详解
Oct 30 Python
pandas数据框,统计某列数据对应的个数方法
Apr 11 Python
tensorflow: variable的值与variable.read_value()的值区别详解
Jul 30 Python
python八皇后问题的解决方法
Sep 27 Python
python之验证码生成(gvcode与captcha)
Jan 02 Python
Pandas分组与排序的实现
Jul 23 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
Oct 17 Python
Django数据库操作之save与update的使用
Apr 01 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
Sep 26 Python
Python系统公网私网流量监控实现流程
Nov 23 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 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版
2006/10/09 PHP
避免Smarty与CSS语法冲突的方法
2015/03/02 PHP
php生成唯一数字id的方法汇总
2015/11/18 PHP
PHP时间类完整实例(非常实用)
2015/12/25 PHP
jquery 日期控件datepicker属性详细解析
2013/11/08 Javascript
JavaScript加入收藏夹功能(兼容IE、firefox、chrome)
2014/05/05 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
2016/07/28 Javascript
JS 终止执行的实现方法
2016/11/24 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
vue多种弹框的弹出形式的示例代码
2017/09/18 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
2019/01/27 Javascript
js仿360开机效果
2019/12/26 Javascript
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
在Python 3中实现类型检查器的简单方法
2015/07/03 Python
tensorflow构建BP神经网络的方法
2018/03/12 Python
python学生信息管理系统(完整版)
2020/04/05 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
在Python 的线程中运行协程的方法
2020/02/24 Python
使用keras2.0 将Merge层改为函数式
2020/05/23 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
Python selenium键盘鼠标事件实现过程详解
2020/07/28 Python
瑞典灯具和照明网上商店:Lamp24.se
2018/03/17 全球购物
SmartBuyGlasses比利时:购买品牌太阳镜和眼镜
2019/08/09 全球购物
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
日本语毕业生自荐信
2014/02/01 职场文书
创建无烟单位实施方案
2014/03/29 职场文书
商务助理求职信范文
2014/04/20 职场文书
保险公司演讲稿
2014/09/02 职场文书
实习证明格式范文
2014/10/14 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
岗位聘任协议书
2015/09/21 职场文书
创业计划书之面包店
2019/09/12 职场文书
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android