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通过pil将图片转换成黑白效果的方法
Mar 16 Python
python 循环while和for in简单实例
Aug 16 Python
django模型层(model)进行建表、查询与删除的基础教程
Nov 21 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
Dec 04 Python
Gauss-Seidel迭代算法的Python实现详解
Jun 29 Python
python画微信表情符的实例代码
Oct 09 Python
python多线程高级锁condition简单用法示例
Nov 07 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
Jan 25 Python
Python使用type动态创建类操作示例
Feb 29 Python
Python如何使用input函数获取输入
Aug 06 Python
python必学知识之文件操作(建议收藏)
May 30 Python
高考要来啦!用Python爬取历年高考数据并分析
Jun 03 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禁止直接从浏览器输入地址访问.php文件的方法
2014/11/04 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
使用PHP接受文件并获得其后缀名的方法
2015/08/05 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
慎用 somefunction.prototype 分析
2009/06/02 Javascript
浏览器常用高宽的jquery插件
2011/02/24 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
详解如何在vue中使用sass
2017/06/21 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
Vue搭建后台系统需要注意的问题
2019/11/08 Javascript
详解Nuxt内导航栏的两种实现方式
2020/04/16 Javascript
python使用xlrd与xlwt对excel的读写和格式设定
2017/01/21 Python
python之从文件读取数据到list的实例讲解
2018/04/19 Python
python写入已存在的excel数据实例
2018/05/03 Python
django中模板的html自动转意方法
2018/05/27 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
程序员写Python时的5个坏习惯,你有几条?
2018/11/26 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
2018/11/29 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
对Xpath 获取子标签下所有文本的方法详解
2019/01/02 Python
OpenCV+Python识别车牌和字符分割的实现
2019/01/31 Python
anaconda升级sklearn版本的实现方法
2021/02/22 Python
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
美国批发零售网站:GearXS
2016/07/26 全球购物
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
Java如何调用外部Exe程序
2015/07/04 面试题
班组长岗位职责
2014/03/03 职场文书
学习考察心得体会
2014/09/04 职场文书
学用政策心得体会
2014/09/10 职场文书
农业局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
化工见习报告范文
2014/10/31 职场文书
行政前台岗位职责
2015/04/16 职场文书
idea以任意顺序debug多线程程序的具体用法
2021/08/30 Java/Android
golang生成vcf通讯录格式文件详情
2022/03/25 Golang
PostgreSQL数据库创建并使用视图以及子查询
2022/04/11 PostgreSQL