Python求平面内点到直线距离的实现

yipeiwu_com6年前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对象引用、可变性和垃圾回收详解

基于Python对象引用、可变性和垃圾回收详解

变量不是盒子 在示例所示的交互式控制台中,无法使用“变量是盒子”做解释。图说明了在 Python 中为什么不能使用盒子比喻,而便利贴则指出了变量的正确工作方式。 变量 a 和 b 引用同...

对python中if语句的真假判断实例详解

说明 在python中,if作为条件语句,当if后面的条件参数为真时,则执行后面的语句块,反之跳过,为了深入理解if语句,我们需要知道if语句的真假判断方式。 示例 在python交互器...

python中 chr unichr ord函数的实例详解

python中 chr unichr ord函数的实例详解 chr()函数用一个范围在range(256)内的(就是0~255)整数作参数,返回一个对应的字符。unichr()跟它一样,...

Django 浅谈根据配置生成SQL语句的问题

想要根据django中的模型和配置生成SQL语句,需要先进行一定的设置: 首先需要在你的app文件夹中进入setting.py文件,里面有一个DATABASES,进行设置数据库的配置信息...

python查看文件大小和文件夹内容的方法

一旦有办法处理文件路径,就可以开始搜集特定文件和文件夹的信息。os.path 模块提供了一些函数,用于查看文件的字节数以及给定文件夹中的文件和子文件夹。 • 调用 os.pa...