Python计算点到直线距离的两种方法
admin
2023-07-30 20:06:54
0

利用距离公式来计算距离

import numpy as np

def get_distance_from_point_to_line(point, line_point1, line_point2):
#对于两点坐标为同一点时,返回点与点的距离
if line_point1 == line_point2:
point_array = np.array(point )
point1_array = np.array(line_point1)
return np.linalg.norm(point_array -point1_array )
#计算直线的三个参数
A = line_point2[1] - line_point1[1]
B = line_point1[0] - line_point2[0]
C = (line_point1[1] - line_point2[1]) * line_point1[0] + \
(line_point2[0] - line_point1[0]) * line_point1[1]
#根据点到直线的距离公式计算距离
distance = np.abs(A * point[0] + B * point[1] + C) / (np.sqrt(A**2 + B**2))
return distance

利用向量计算点到直线的距离

import numpy as np

def point_distance_line(point,line_point1,line_point2):
#计算向量
vec1 = line_point1 - point
vec2 = line_point2 - point
distance = np.abs(np.cross(vec1,vec2)) / np.linalg.norm(line_point1-line_point2)
return distance

point = np.array([5,2])
line_point1 = np.array([2,2])
line_point2 = np.array([3,3])
print(get_distance_from_point_to_line(point,line_point1,line_point2))
print(point_distance_line(point,line_point1,line_point2))

相关内容

用python复制一个文件...
在Python中,你可以使用shutil模块来复制文件,并使用ti...
2024-06-12 15:14:26
ADB Python-Da...
当使用ADB Python-Daemon库时,如果子进程无法连接,...
2024-05-24 01:17:39
ADAL python 支...
要实现ADAL Python支持Windows登录用户,可以按照以...
2024-05-24 00:23:06
ADAL for Pyth...
在ADAL for Python中,可以使用TokenCache类...
2024-05-24 00:21:15
Adafruit的TLC5...
目前,Adafruit 的TLC5947没有官方的 Micropy...
2024-05-24 00:20:23
Adafruit QT P...
如果Adafruit QT PY ESP32-S2被卡在Circu...
2024-05-24 00:20:09

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 常见... 什么是 Apache Doris Apache Doris 是一款 MPP 架构的 OLAP 列式存...
Vmware简易安装ubunt... 大晚上的折腾死我了VMware安装ubuntu,用简易安装结果设置的用户名密码死活进不去再重装一次,...
‘WebDriver‘ obj... selenium库报错"‘WebDriver’ object has no attribute ‘f...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
WiFi中继器和WiFi扩展器... WiFi中继器以无线方式连接到 WiFi 网络并重新广播信号。它就像一个中继系统,连接到我们的 Wi...