求解點關於直線的距離 垂足 對稱點公式

2022-03-22 19:18:24 字數 1357 閱讀 5501

d = ( ax0 + by0 + c ) / sqrt ( a*a + b*b );

這個「距離」有符號,表示點在直線的上方或者下方,取絕對值表示歐式距離。

求解兩個方程:

(a)  ax + by + c = 0;

(b)  (y - y0) / (x - x0) = b / a;

解得,x = (  b*b*x0  -  a*b*y0  -  a*c  ) / ( a*a + b*b );

y  =  ( -a*b*x0 + a*a*y0 - b*c  ) / ( a*a + b*b );

方法一:求解兩個方程:(a)、a*( x』+x0 ) / 2 + b*( y『+y0 ) / 2 + c = 0; (b)、(y』 - y0) / (x『 - x0) = b / a;

方法二:把問題轉化為求解已知點關於垂足的對稱點:

首先,求出垂足;則x』 = 2*x - x0; y『 = 2*y - y0;

解得,x』 = ( (b*b - a*a)*x0 - 2*a*b*y0 - 2*a*c ) / ( a*a + b*b );

y『 = ( -2*a*b*x0 + (a*a - b*b) * y0 - 2*b*c ) / ( a*a+b*b );

方法三:首先,求一係數k,k = - 2 * (a*x0 + b*y0 + c) / (a*a+b*b);

則,   x' = x0 + k * a;

y' = y0 + k * b;

此證明詳見資源:

解決方法:

方法一:把直線化兩點式為一般式,則一般式中的a = y2 -y1;       b = x1 - x2;     c = x2*y1 - x1*y2;    帶入上面的公式,即可求出相應的距離、垂足、對稱點。

方法二:

首先,求出垂足的座標;

則d = sqrt( (x - x0) * (x - x0)  +  (y - y0) * (y - y0));

首先,求一係數 k: 設直線的起點和終點分別為a(x1, y1)、b(x2, y2),直線外一點為c(x0, y0),垂足為d;並設k = |ad| / |ab。

則,k * ab = ad = ac + cd,又 ab * cd= 0;所以,k * ab* ab = ac *ab,故 k =ac * ab / (ab * ab)。

帶入座標,即得,

k = ( (x0- x1) * (x2 - x1) + (y0 - y1) * (y2 - y1) )  / ( (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1) ) ;

則   x = x1 + k*(x2 - x1);      y = y1 + k*(y2 - y1);

同問題描述1中的方法。

點關於直線的距離 垂足 對稱點公式

下面通過兩種直線方程的形式,求解點關於直線的距離 垂足 對稱點公式。問題描述1 已知點的座標 x0,y0 直線的方程為ax by c 0 求點到直線上的距離d 點在直線上的垂足 x,y 點關於直線的對稱點 x y 解決方法 1 距離 d ax0 by0 c sqrt a a b b 這個 距離 有符...

點到直線方程的距離 垂足 對稱點

已知點的座標 x0,y0 直線的方程為ax by c 0 求點到直線上的距離d 點在直線上的垂足 x,y 點關於直線的對稱點 x y 解決方法 1 距離 d ax0 by0 c sqrt a a b b 這個 距離 有符號,表示點在直線的上方或者下方,取絕對值表示歐式距離。2 垂足 求解兩個方程 a...

輸出一點的對稱點,兩點間的距離

程式頭部注釋開始 程式的版權和版本宣告部分 檔名稱 作 者 苗影 完成日期 2012 年 3 月 28 日 版 本 號 對任務及求解方法的描述部分 輸入描述 問題描述 程式輸出 程式頭部的注釋結束 include includeusing namespace std enum symmetricst...