推导前置:两点之间距离公式
图一:
已知AB两点坐标为A(x1,y1),B(x2,y2)。
过A做一直线与X轴平行,过B做一直线与Y轴平行,两直线交点为C。
则AC垂直于BC(因为X轴垂直于Y轴)
则三角形ACB为直角三角形
由勾股定理得
A
B
2
=
A
C
2
+
B
C
2
AB^2=AC^2+BC^2
AB2=AC2+BC2
即
A
B
=
A
C
2
+
B
C
2
AB=\sqrt{AC^2+BC^2}
AB=AC2+BC2
已知直线方程:
一般式
A
x
+
B
y
+
C
=
0
Ax+By+C=0
Ax+By+C=0
点斜式
(
y
1
−
y
2
)
(
x
1
−
x
2
)
=
k
\frac{(y1-y2)}{(x1-x2)}=k
(x1−x2)(y1−y2)=k
过P(x0,y0)作直线L的垂线Li,垂足为D(x,y),p(x0,y0)到D(x,y)的距离为d
由一般式直线方程可知,直线L的斜率为:-
k
=
−
A
B
k=-\frac{A}{B}
k=−BA
由于两线垂直斜率乘积为-1,所以垂线Li的斜率为:
k
i
=
B
A
ki=\frac{B}{A}
ki=AB
代入点斜式直线方程:
y 0 − y x 0 − x = B A \frac{y0-y}{x0-x}=\frac{B}{A} x0−xy0−y=AB
即得到直线方程二:
B
x
−
A
y
+
A
y
0
−
B
x
0
=
0
Bx-Ay+Ay0-Bx0=0
Bx−Ay+Ay0−Bx0=0
通过一般式可知:
x
=
−
(
c
+
B
y
)
A
x=\frac{-(c+By)}{A}
x=A−(c+By)
y = − ( c + A x ) B y=\frac{-(c+Ax)}{B} y=B−(c+Ax)
代入直线方程二
B x + A C + A 2 ∗ x B + A y 0 − B x 0 = 0 Bx+\frac{AC+A^2*x}{B}+Ay0-Bx0=0 Bx+BAC+A2∗x+Ay0−Bx0=0
计算得到D(x,y)的坐标为:
x = B 2 ∗ x 0 − A B y 0 − A C B 2 + A 2 x=\frac{B^2*x0-ABy0-AC}{B^2+A^2} x=B2+A2B2∗x0−ABy0−AC
y = A 2 ∗ y 0 − A B x 0 − B C B 2 + A 2 y=\frac{A^2*y0-ABx0-BC}{B^2+A^2} y=B2+A2A2∗y0−ABx0−BC
x − x 0 = − A ( A x 0 + B y 0 + C ) B 2 + A 2 x-x0=\frac{-A(Ax0+By0+C)}{B^2+A^2} x−x0=B2+A2−A(Ax0+By0+C)
y − y 0 = − B ( A x 0 + B y 0 + C ) B 2 + A 2 y-y0=\frac{-B(Ax0+By0+C)}{B^2+A^2} y−y0=B2+A2−B(Ax0+By0+C)
根据推导前置图一勾股定理可知:
d 2 = ( x − x 0 ) 2 + ( y − y 0 ) 2 d^2=(x-x0)^2+(y-y0)^2 d2=(x−x0)2+(y−y0)2
所以代入x-x0,y-y0得到:
d
2
=
(
−
A
(
A
x
0
+
B
y
0
+
C
)
(
B
2
+
A
2
)
)
2
+
(
−
B
(
A
x
0
+
B
y
0
+
C
)
(
B
2
+
A
2
)
)
2
d^2=\frac{(-A(Ax0+By0+C)}{(B^2+A^2))^2}+\frac{(-B(Ax0+By0+C)}{(B^2+A^2))^2}
d2=(B2+A2))2(−A(Ax0+By0+C)+(B2+A2))2(−B(Ax0+By0+C)
d 2 = A 2 ( A x 0 + B y 0 + C ) 2 ( B 2 + A 2 ) 2 + B 2 ( A x 0 + B y 0 + C ) 2 ( B 2 + A 2 ) 2 d^2=\frac{A^2(Ax0+By0+C)^2}{(B^2+A^2)^2}+\frac{B^2(Ax0+By0+C)^2}{(B^2+A^2)^2} d2=(B2+A2)2A2(Ax0+By0+C)2+(B2+A2)2B2(Ax0+By0+C)2
d 2 = ( A 2 + + B 2 ) ( A x 0 + B y 0 + C ) 2 ( B 2 + A 2 ) 2 d^2=\frac{(A^2++B^2)(Ax0+By0+C)^2}{(B^2+A^2)^2} d2=(B2+A2)2(A2++B2)(Ax0+By0+C)2
d 2 = ( A x 0 + B y 0 + C ) 2 ( B 2 + A 2 ) d^2=\frac{(Ax0+By0+C)^2}{(B^2+A^2)} d2=(B2+A2)(Ax0+By0+C)2
得出点到直线距离公式为:
d = ∣ A x 0 + B y 0 + C ∣ A 2 + B 2 d=\frac{|Ax0+By0+C|}{\sqrt{A^2+B^2}} d=A2+B2∣Ax0+By0+C∣