點到直線距離求解

2021-10-02 22:16:18 字數 828 閱讀 6855

點到線距離求解演算法:

解法一: 向量法求解:

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)則距離d=(向量ab向量n0)的絕對值,其中n0是n的單位向量,在這裡n0=n/n的模=(-1/根5,2/根5),那麼d=-1/根51+2/根5*1=1/根5=5分之根號5

你可以用解析法驗證

思路是:做出給定直線的任意乙個法向量,再做已知點到已知直線上任意一點的向量,如我上面找的ab,找ac也可以,哪怕設任意點p在直線bc上,取ap也無妨,然後做的這個向量在法向量上的投影即為點線距離.應該比較好理解,高二學空間向量中點面距就是這個思路,那時候你對這種方法的理解就更深了。

至於點點距,那相當於求向量模嘛,比如要求剛才的ab長,ab=(1,1),模是根號2,你可以用兩點間距離公式驗證

2. 當知道直線公式時:

設 p(x0,y0),直線 l :ax+by+c=0 ,則直線的法向量取為 n=(a,b) ,設 q(x1,y1)是l上任一點,則 pq=(x1-x0,y1-y0),p 到 l 的距離等於 pq 在 n 方向上的投影的絕對值 ,即 d=| pq*n/|n| |=|a(x1-x0)+b(y1-y0)|/|n|=|…

3. 當時空間點的時候:參考:

求點到直線的距離

關於點到直線的距離,在vtkline中有乙個方法 distancetoline 用法 double closestpt1 3 double t1 3 double dist0 vtkline distancetoline seed,first seed,second seed,t1,closestp...

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...

計算空間點到直線的距離

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