c 垂直投影法 c 求點到直線的投影點座標

2021-10-13 12:27:46 字數 881 閱讀 3510

點在指定直線的投影點,即過點作一垂直於指定直線的直線,與指定直線的交點即為所求。這個問題其實回歸到兩條垂直直線的交點問題,回到最原始的初中幾何知識,複習下

如圖示首先我們明確下已知條件,指定直線上任一點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...