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解决网站的反爬虫策略总结
Oct 26 Python
浅谈Python生成器generator之next和send的运行流程(详解)
May 08 Python
浅谈django orm 优化
Aug 18 Python
Python运维开发之psutil库的使用详解
Oct 18 Python
Python文件常见操作实例分析【读写、遍历】
Dec 10 Python
调用其他python脚本文件里面的类和方法过程解析
Nov 15 Python
python实现XML解析的方法解析
Nov 16 Python
python的等深分箱实例
Nov 22 Python
Python实现word2Vec model过程解析
Dec 16 Python
Python嵌入C/C++进行开发详解
Jun 09 Python
python查询MySQL将数据写入Excel
Oct 29 Python
Python实现王者荣耀自动刷金币的完整步骤
Jan 22 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在XP下IIS和Apache2服务器上的安装
2006/09/05 PHP
基于python发送邮件的乱码问题的解决办法
2013/04/25 PHP
浅析PHP的静态成员函数效率更高的原因
2014/06/13 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
PHP实现递归的三种方法
2020/07/04 PHP
js改变img标签的src属性在IE下没反应的解决方法
2013/07/23 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
详谈表单格式化插件jquery.serializeJSON
2017/06/23 jQuery
详解angularjs 学习之 scope作用域
2018/01/15 Javascript
解决Vue动态加载本地图片问题
2019/10/09 Javascript
vue a标签点击实现赋值方式
2020/09/07 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
2020/12/07 Javascript
[01:15:15]VG VS EG Supermajor小组赛B组胜者组第一轮 BO3第二场 6.2
2018/06/03 DOTA
python解析xml文件操作实例
2014/10/05 Python
使用Python编写提取日志中的中文的脚本的方法
2015/04/30 Python
详解Python中的日志模块logging
2015/06/19 Python
对Python使用mfcc的两种方式详解
2019/01/09 Python
对python列表里的字典元素去重方法详解
2019/01/21 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
分享一个页面平滑滚动小技巧(推荐)
2019/10/23 HTML / CSS
手工制作的意大利太阳镜和光学元件:Illesteva
2019/01/19 全球购物
业绩考核岗位职责
2014/02/01 职场文书
管理学院毕业生自荐信范文
2014/03/10 职场文书
党建工作先进材料
2014/05/02 职场文书
村庄环境整治方案
2014/05/15 职场文书
幼儿教师求职信
2014/05/24 职场文书
企业文化宣传标语
2014/06/09 职场文书
中学生的1000字检讨书
2014/10/11 职场文书
缅怀先烈主题班会
2015/08/14 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书
Pytest allure 命令行参数的使用
2021/04/18 Python
MySQL查看表和清空表的常用命令总结
2021/05/26 MySQL
python 网络编程要点总结
2021/06/18 Python
在vue中import()语法不能传入变量的问题及解决
2022/04/01 Vue.js
电脑关机速度很慢怎么办 提升电脑关机速度设置教程
2022/04/08 数码科技