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 08 Python
利用python实现命令行有道词典的方法示例
Jan 31 Python
在CentOS6上安装Python2.7的解决方法
Jan 09 Python
浅谈Python脚本开头及导包注释自动添加方法
Oct 27 Python
django中forms组件的使用与注意
Jul 08 Python
Python爬虫抓取技术的一些经验
Jul 12 Python
django 信号调度机制详解
Jul 19 Python
pygame实现俄罗斯方块游戏(基础篇1)
Oct 29 Python
flask框架蓝图和子域名配置详解
Jan 25 Python
Python 读取有公式cell的结果内容实例方法
Feb 17 Python
Python使用Turtle模块绘制国旗的方法示例
Feb 28 Python
Pandas加速代码之避免使用for循环
May 30 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中$this->含义分析
2009/11/29 PHP
在MongoDB中模拟Auto Increment的php代码
2011/03/06 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
2014/06/23 PHP
PHP递归遍历多维数组实现无限分类的方法
2016/05/06 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
2017/05/29 PHP
splice slice区别
2006/10/09 Javascript
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
基于jquery fly插件实现加入购物车抛物线动画效果
2016/04/05 Javascript
使用jQuery实现Web页面换肤功能的要点解析
2016/05/12 Javascript
详解nodejs的express如何自动生成项目框架
2017/07/12 NodeJs
javascript用rem来做响应式开发
2018/01/13 Javascript
layui使用表格渲染获取行数据的例子
2019/09/13 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
python实现web方式logview的方法
2015/08/10 Python
python发送邮件功能实现代码
2016/07/15 Python
Python中最大递归深度值的探讨
2019/03/05 Python
在Python中使用filter去除列表中值为假及空字符串的例子
2019/11/18 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
python 实现端口扫描工具
2020/12/18 Python
Python日志打印里logging.getLogger源码分析详解
2021/01/17 Python
java关于string最常出现的面试题整理
2021/01/18 Python
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
Allen Edmonds官方网站:一家美国优质男士鞋类及配饰制造商
2019/03/12 全球购物
Linux如何修改文件和文件夹的权限
2013/09/05 面试题
2013年保送生自荐信格式
2013/11/20 职场文书
建筑施工员岗位职责
2013/11/26 职场文书
教师网络培训感言
2014/03/09 职场文书
《少年王勃》教学反思
2014/04/27 职场文书
文明班级申报材料
2014/12/24 职场文书
主持稿开场白
2015/06/01 职场文书
2016小学优秀教师先进事迹材料
2016/02/26 职场文书
python3 hdf5文件 遍历代码
2021/05/19 Python
Java实现带图形界面的聊天程序
2022/06/10 Java/Android