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

2021-09-07 18:24:35 字數 2577 閱讀 2959

已知點的座標(x0,y0),直線的方程為ax+by+c = 0;求點到直線上的距離d、點在直線上的垂足(x, y)、點關於直線的對稱點(x』, y『)。

解決方法:

(1)距離:

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

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

(2)垂足:

求解兩個方程:(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 );

(3)對稱點:

方法一:求解兩個方程:(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;

/**

* description 求點到直線的垂足

* *

@param

x1 * 點橫座標

* @param

y1 * 點縱座標

* @param

a * 直線方程一般式係數a

* @param

b * 直線方程一般式係數b

* @param

c * 直線方程一般式係數c

* @return

垂足點

*/private

static point getfootofperpendicular(double x1, double y1, double a, double b, double

c)

else

}/*** description 點到直線的距離

* *

@param

x1 * 點橫座標

* @param

y1 * 點縱座標

* @param

a * 直線方程一般式係數a

* @param

b * 直線方程一般式係數b

* @param

c * 直線方程一般式係數c

*/private

static

double getdistanceofperpendicular(double x1, double y1, double a, double b, double

c)

public

static

void

main(string args)

已知點的座標(x0,y0),直線上的兩點(x1,y1)、(x2,y2);求點到直線上的距離d、點在直線上的垂足(x, y)、點關於直線的對稱點(x』, y『)。

解決方法:

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

方法二:

(a)距離:

首先,求出垂足的座標;

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

(b)垂足:

首先,求一係數 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);

(c)對稱點:

同問題描述1中的方法。

參考《點關於直線的距離、垂足、對稱點公式》

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

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

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

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

直線外一點到直線的距離

已知直線上兩點求直線的一般式方程 已知直線上的兩點p1 x1,y1 p2 x2,y2 p1 p2兩點不重合。則直線的一般式方程ax by c 0中,a b c分別等於 a y2 y1 b x1 x2 c x2y1 x1y2 直線外一點到直線的距離 p 的座標為 xo,yo 則點 p 到直線 l 的距...