- 使用向量的方法效率更高,更簡單。
- 首先要了解什麼是向量,什麼是向量的模
- 主要用到了解析幾何裡的幾個公式
-
,其中x為向量a,b的夾角a * b = | a | * | b | * cos(x)
-
,機關向量為模為1的向量| a | * 機關向量 = a
- 向量的加減法 ,如下圖所示
- 向量的加法
- 向量的減法
-
- 問題的原型如下圖所示,紅色的點為滑鼠位置,藍色的點(x0,y0),(x1,y1)為線段的端點,求紅色的點到直線的距離 可以将點到線的距離轉換為直角三角形的問題,如下圖所示:
- 我們定義滑鼠所在點為M,線段起點為A,終點為B,MA為向量a,AB為向量b,向量c為向量a在向量b上的投影,向量e為M點到AB的垂線,關鍵就是求出向量e的模。
- 要得到向量e的模,首先要得到向量e,而要得到向量e就需要得到向量c,問題就轉換為了求向量c。
- 由勾股定理可得
,x為向量ab的夾角,而|c| = |a| * cos(x)
,這樣就得到了c的模,這樣就可以得到|a| * cos(x) = |a| * |b| * cos(x) / |b| = a * b / |b|
c = |c| * 機關向量
,
因為c與b的方向相同,是以取
機關向量=b / |b|
,整理可得:
c=(a∗b)|b|b|b|
=(a∗b)|b|2b
- 得到c的向量之後,就可以得到向量
再取e的模即可得到點到直線的距離。e = a - c
- 最後兩個圖檔源自https://msdn.microsoft.com/en-us/library/ms969920.aspx
轉載位址:http://blog.csdn.net/tracing/article/details/46563383