利用距离公式来计算距离

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))