點在指定直線的投影點,即過點作一垂直於指定直線的直線,與指定直線的交點即為所求。這個問題其實回歸到兩條垂直直線的交點問題,回到最原始的初中幾何知識,複習下
如圖示首先我們明確下已知條件,指定直線上任一點a,直線斜率k,點c,求點b
說到斜率,就有不存在的情況,如圖(2),顯然這種情況b的橫座標=a的橫座標,b的縱座標=c的縱座標
本文重點討論第一種情況,其實也很簡單,聯立兩條直線求解即可
直線ab方程式即y-ya=k*(x-xa)
∵兩條垂直直線的斜率乘積 = -1
∴由ab線斜率為k可知bc線斜率為-1/k,可知直線bc方程式為
y-yc=-1/k*(x-xc)
聯立方程組解得
xb = (k * xa+ xc / k + yc - ya) / (1 / k + k)
由xb代入bc方程即可得yb
/// 求直線外一點到該直線的投影點
/// 線上任一點
/// 直線斜率
/// 線外指定點
/// 投影點
protected void getprojectivepoint(pointf pline, double k, pointf pout, ref pointf pproject)
if (k == 0) //垂線斜率不存在情況
pproject.x = pout.x;
pproject.y = pline.y;
else
pproject.x = (float)((k * pline.x + pout.x / k + pout.y - pline.y) / (1 / k + k));
pproject.y = (float)(-1 / k * (pproject.x - pout.x) + pout.y);
c 垂直投影法 c 求點到直線的投影點座標
點在指定直線的投影點,即過點作一垂直於指定直線的直線,與指定直線的交點即為所求。這個問題其實回歸到兩條垂直直線的交點問題,回到最原始的初中幾何知識,複習下 如圖示首先我們明確下已知條件,指定直線上任一點a,直線斜率k,點c,求點b 說到斜率,就有不存在的情況,如圖 2 顯然這種情況b的橫座標 a的橫...
matlab 求點到任意直線的投影點座標
寫在前面 因為影象座標系和我們平時用的直角座標系還是有不同的。因此在求點到直線投影點座標的時候,不敢隨便把直線用點斜式表示。為此採用向量的方法求投影點。function proj point projpoint point,line p x1 line p 1 y1 line p 2 x2 line...
計算幾何 點到直線的距離 投影點
彙總篇 計算幾何彙總 求ad有很多種方法,可以用勾股定理 這裡用的三角函式 x acos cos x ad ba sin x 如果x是鈍角,ad ba sin pi x ba sin x 如果是直角,sin x 1,ad ba 設d dx,dy ad dx ax,dy ay bc c.x b.x,c...