求點到直線的距離

2021-08-08 16:13:29 字數 1084 閱讀 1960

關於點到直線的距離,在vtkline中有乙個方法:distancetoline

用法:

double 	closestpt1[3];

double t1[3];

double dist0 = vtkline::distancetoline(seed,first_seed,second_seed,*t1,closestpt1);

接下來把這個方法選出來,我們看看作者是怎麼實現的。

double vtkline::distancetoline (double x[3], double p1[3], double p2[3])

if ( (den=vtkmath::norm(p1p2)) != 0.0 )//如果不垂直

}else

proj = vtkmath::dot(np1,p1p2);//不垂直繼續, dot向量點乘 ,這裡的p1p2已經變成了單位向量!

return (vtkmath::dot(np1,np1) - proj*proj);//p1-x之間的距離 , p1-o之間的距離。敲黑板!!!注意,這個返回的值不是距離,是距離的平方!!!

1. 用向量求;

2. 分兩種情況:垂直,不垂直;

3. dot  向量點乘

4. 勾股定理

如果垂直,則 |xp1| 就是點到直線的距離;

如果不垂直,則 |xo|為直角三角形xop1的乙個直角邊,|xo|^2 = |xp1|^2 - |p1o|^2;接下來求 |p1o| =  向量p1x 與 (向量p1p2的單位向量)的 點乘;

這個月明顯有點忙,這才是第一篇,慚愧。

想做的太多,而能做的又太少。

1.

求點到直線 線段的距離 TS實現

如上圖所示,點c為直線ab外一點,cd ab,那麼cd的模長就是點c到直線ab的距離。所以求點到直線得距離,就是求cd得長度。作輔助線如上圖所示,要求得線段cd得長度,需要知道點d得座標,剩下求兩點距離就變得簡單了。為求得點d得座標。令a xa,ya b xb,yb c xc,yc d xd,yd ...

點到直線距離求解

點到線距離求解演算法 解法一 向量法求解 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...

python 點到直線的距離

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