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函数可变参数定义及其参数传递方式实例详解
May 25 Python
基python实现多线程网页爬虫
Sep 06 Python
Python爬虫之模拟知乎登录的方法教程
May 25 Python
python 正确保留多位小数的实例
Jul 16 Python
深入浅析Python中list的复制及深拷贝与浅拷贝
Sep 03 Python
解决每次打开pycharm直接进入项目的问题
Oct 28 Python
python安装requests库的实例代码
Jun 25 Python
python 字典的打印实现
Sep 26 Python
解决Tensorflow sess.run导致的内存溢出问题
Feb 05 Python
Python django框架开发发布会签到系统(web开发)
Feb 12 Python
对python中return与yield的区别详解
Mar 12 Python
python 开心网和豆瓣日记爬取的小爬虫
May 29 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显示MySQL数据的三种方法
2008/06/05 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
利用laravel搭建一个迷你博客实战教程
2017/08/13 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
jQuery 版本的文本输入框检查器Input Check
2009/07/09 Javascript
详解JavaScript中shift()方法的使用
2015/06/09 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
2015/08/18 Javascript
理解Javascript文件动态加载
2016/01/29 Javascript
AngularJs验证重复密码的方法(两种)
2016/11/25 Javascript
浅谈javascript中的数据类型转换
2016/12/27 Javascript
JS基于onclick事件实现单个按钮的编辑与保存功能示例
2017/02/13 Javascript
nodejs socket实现的服务端和客户端功能示例
2017/06/02 NodeJs
基于vue-cli vue-router搭建底部导航栏移动前端项目
2018/02/28 Javascript
深入探讨JavaScript的最基本部分之执行上下文
2019/02/12 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
2019/05/14 jQuery
node将geojson转shp返回给前端的实现方法
2019/05/29 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
手机浏览器唤起微信分享(JS)
2020/10/11 Javascript
JavaScript 防盗链的原理以及破解方法
2020/12/29 Javascript
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
python统计文本文件内单词数量的方法
2015/05/30 Python
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
基于windows下pip安装python模块时报错总结
2018/06/12 Python
Django 简单实现分页与搜索功能的示例代码
2019/11/07 Python
Django项目uwsgi+Nginx保姆级部署教程实现
2020/04/19 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
Jupyter Notebook添加代码自动补全功能的实现
2021/01/07 Python
使用phonegap获取位置信息的实现方法
2017/03/31 HTML / CSS
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
Harrods美国:英国最大的百货公司
2018/11/04 全球购物
汽车专业毕业生推荐信
2013/11/12 职场文书
网站设计师的岗位职责
2013/11/21 职场文书
建筑专业毕业生推荐信
2013/11/21 职场文书
社区工作者先进事迹
2014/01/18 职场文书
学生安全教育材料
2014/02/14 职场文书
歌唱比赛策划方案
2014/06/06 职场文书