一,斜边×sin
def distance_point_to_line(long_line, base_line):
angle = Line.get_cross_angle(long_line, base_line)
sin_value = np.sin(angle * np.pi / 180) # 其中current_line视为斜边
long_edge = math.sqrt( # 获取斜边长度
math.pow(long_line.p2.x - long_line.p1.x, 2) + math.pow(long_line.p2.y - long_line.p1.y,
2)) # 斜边长度
distance = long_edge * sin_value
return distance
def calculate_distance(cx, cy, base_line):
'''
点到直线的距离
:param cx:
:param cy:
:param base_line: 这里的基准线是横着的方向, 由两个点组成
:return:
'''
long_line = Line(Point(cx, cy), Point(base_line.p1.x, base_line.p1.y)) # 每个字的质心和基准线上的一个点组成的长边
distance = Line.distance_point_to_line(long_line, base_line)
直线的定义:https://blog.csdn.net/jizhidexiaoming/article/details/100009138
二,已知直线方程,点到直线距离公式
点(x_bottom, y_bottom)到直线 kx * b = y的距离:
distance = round(abs(k * x_bottom - y_bottom + b) / np.sqrt(k ** 2 + 1), 2)
后面再整理下