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 相关文章推荐
kNN算法python实现和简单数字识别的方法
Nov 18 Python
python 函数传参之传值还是传引用的分析
Sep 07 Python
使用EduBlock轻松学习Python编程
Oct 08 Python
uwsgi+nginx部署Django项目操作示例
Dec 04 Python
PyQt5显示GIF图片的方法
Jun 17 Python
详解Python利用random生成一个列表内的随机数
Aug 21 Python
python2与python3爬虫中get与post对比解析
Sep 18 Python
python3使用GUI统计代码量
Sep 18 Python
python从zip中删除指定后缀文件(推荐)
Dec 05 Python
python多进程重复加载的解决方式
Dec 13 Python
详解python中各种文件打开模式
Jan 19 Python
Python cookie的保存与读取、SSL讲解
Feb 17 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
2009/06/29 PHP
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
jquery-easyui关闭tab自动切换到前一个tab
2010/07/29 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
推荐10 款 SVG 动画的 JavaScript 库
2015/03/24 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
JQUERY表单暂存功能插件分享
2016/02/23 Javascript
EasyUI在表单提交之前进行验证的实例代码
2016/06/24 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
JavaScript与ActionScript3两者的同性与差异性
2016/09/22 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
解决vue里碰到 $refs 的问题的方法
2017/07/13 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
React BootStrap用户体验框架快速上手
2018/03/06 Javascript
element-ui 时间选择器限制范围的实现(随动)
2019/01/09 Javascript
Vue 实现手动刷新组件的方法
2019/02/19 Javascript
利用angular自动编译andriod APK的绕坑经历分享
2019/03/08 Javascript
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
vue.js watch经常失效的场景与解决方案
2021/01/07 Vue.js
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
2014/04/25 Python
Python运用于数据分析的简单教程
2015/03/27 Python
Python学习笔记之字符串和字符串方法实例详解
2019/08/22 Python
python super的使用方法及实例详解
2019/09/25 Python
关于Numpy数据类型对象(dtype)使用详解
2019/11/27 Python
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
食品业务员岗位职责
2014/03/18 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
人力资源部岗位职责
2015/02/11 职场文书
《叶问2》观后感
2015/06/15 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
python使用openpyxl库读写Excel表格的方法(增删改查操作)
2021/05/02 Python