一,斜邊×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)
直線的定義:
二,已知直線方程,點到直線距離公式
點(x_bottom, y_bottom)到直線 kx * b = y的距離:
distance = round(abs(k * x_bottom - y_bottom + b) / np.sqrt(k ** 2 + 1), 2)
後面再整理 點到直線距離求解
點到線距離求解演算法 解法一 向量法求解 1.當不知道直線公式,僅知道幾個點時 問題 比如a 1,2 b 2,3 c 0,2 求點a到bc距 向量bc 2,1 我們給它找乙個垂直向量,稱為法向量n 1,2 注意,這裡只要垂直就可以了,比如 3,6 也行,對結果無妨,但不能 0,0 取向量ab 1,1...
求點到直線的距離
關於點到直線的距離,在vtkline中有乙個方法 distancetoline 用法 double closestpt1 3 double t1 3 double dist0 vtkline distancetoline seed,first seed,second seed,t1,closestp...
計算空間點到直線的距離
利用向量的叉積計算空間點到直線的距離,eigen庫已經給我封裝好了只需按著要求呼叫就好了。舉個簡單的例子如下 已知空間直線的方向向量表示為 m,n,p 已知直線上一點座標為b x0,y0,z0 求解空間點a x,y,z b到直線的距離d 需要構建兩個向量 eigen vector4d vec1 m,...