使用向量的方法來計算點到直線的距離

2021-07-23 11:48:53 字數 765 閱讀 1320

問題的原型如下圖所示,紅色的點為滑鼠位置,藍色的點(x0,y0),(x1,y1)為線段的端點,求紅色的點到直線的距離 

可以將點到線的距離轉換為直角三角形的問題,如下圖所示: 

我們定義滑鼠所在點為m,線段起點為a,終點為b,ma為向量a,ab為向量b,向量c為向量a在向量b上的投影,向量e為m點到ab的垂線,關鍵就是求出向量e的模。

要得到向量e的模,首先要得到向量e,而要得到向量e就需要得到向量c,問題就轉換為了求向量c。

由勾股定理可得|c| = |a| * cos(x),x為向量ab的夾角,而 

|a| * cos(x) = |a| * |b| * cos(x) / |b| = a * b / |b|,這樣就得到了c的模,這樣就可以得到c = |c| * 單位向量, 

因為c與b的方向相同,所以取單位向量=b / |b|,整理可得: c=

(a∗b

)|b|

b|b|

=(a∗b

)|b|

2b得到c的向量之後,就可以得到向量e = a - c再取e的模即可得到點到直線的距離。

最後兩個源自

使用geomath包計算點到直線的距離

求點到直線的距離是解析幾何中乙個非常基礎的問題。我們知道點a的座標 x a,y a 和直線bc上兩點b x b,y b 和c x c,y c 的座標,如何求解點a到bc的直線距離呢?我們可以根據以下公式來編寫python 實現功能 公式描述 公式中的直線方程為ax by c 0,點p的座標為 x0,...

計算空間點到直線的距離

利用向量的叉積計算空間點到直線的距離,eigen庫已經給我封裝好了只需按著要求呼叫就好了。舉個簡單的例子如下 已知空間直線的方向向量表示為 m,n,p 已知直線上一點座標為b x0,y0,z0 求解空間點a x,y,z b到直線的距離d 需要構建兩個向量 eigen vector4d vec1 m,...

計算點到直線的距離 C 實現

如下圖所示,我們要計算的是c點到直線ab的距離。首先我們要認識到,雖然在數學上,點 與 向量 是兩種不同的名詞,但在實際的計算中是可以直接把 點 的座標視為從座標系 原點 到 點 的 向量 有了這個前提,線段ab其實可以簡單地表示為向量n,其他的向量同理可得。用向量解決這個問題的關鍵是求出v在n上的...