python 點到直線的距離

2021-09-29 02:47:48 字數 1036 閱讀 2201

一,斜邊×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,...