点到直线方程的距离


原文链接: 点到直线方程的距离

结论: d=|Ax0+By0+C|/√(A²+B²)

思路1: 叉积法 向量的叉乘

用叉乘来计算更好。向量a和向量b的差乘的模等于它们所张开的平行四边形的面积S。S除以b的模即等于点到直线的距离。

思路2: 点积法 点到直线上任意一点,在直线法向量上的投影

我们这样考虑:现在希望求点到直线的距离,实际上就是要求这个点到它在直线上投影点的距离。直接求解这条垂线段的长度固然不容易,但是我们可以换一种思路:这条垂线段只给我们一个"方向",我们只需要考虑这个点到直线上任意一点连线在这个方向上有多长即可。考虑这个问题用向量非常方便:平面上垂直这条直线的向量方向是唯一的(叫作这条直线的法向量),再任找一个以这一点为起点、直线上任意一点为终点的向量,求出这个向量在法向量方向上的投影即可。而一个向量在另一个向量上的投影,就是这个向量与另一个向量方向上单位向量的点积。这样问题就解决了:
在直线$Ax+By+C=0$上任取两点$P(x_1,y_1),Q(x_2,y_2)$,它们满足直线的方程。
所以这条直线指向的方向$\overrightarrow{PQ}$是$(B,-A)$,则其一条法向量为$(A,B)$,其单位法向量$\vec{n}(\frac{A}{\sqrt{A2+B2}},\frac{B}{\sqrt{A2+B2}})$。
设直线外一点$R(x_0,y_0)$到$P(x_1,y_1)$的向量为$(x_1-x_0,y_1-y_0)$,它们做点积的绝对值就是要求的答案。

\[d = | \vec{n} \cdot \overrightarrow{PQ} | =\frac{1}{\sqrt{A^2+B^2}}\left|A(x_1-x_0)+B(y_1-y_0)\right|=\frac{1}{\sqrt{A^2+B^2}}|(Ax_1+By_1)-(Ax_0+By_0)|\]

而$P$是直线上的点,满足直线的方程,因此

$d=\frac{1}{\sqrt{A2+B2}}|-C-(Ax_0+By_0)| =\frac{1}{\sqrt{A2+B2}}|Ax_0+By_0+C|$

这样证明不一定比勾股定理简单,但是它用向量投影来求解距离,这种思想很有意义,而且具有可扩展性。作业:利用向量方法,推导三维空间中一点$P(x_0,y_0,z_0)$到平面$Ax+By+Cz+D=0$的距离公式。]

就@王希的回答补充一点可以把直线$Ax+By+C=0$看成是与向量$(A,B)$点乘为$-C$的点集即平面上所有在向量$(A,B)$上投影为$\frac{-C}{\sqrt{A2+B2}}$ 的点集那么点$(x_0,y_0)$到直线$Ax+By+C=0$的距离就可用$(x_0,y_0)$到$(A,B)$的投影大小与$\frac{-C}{\sqrt{A2+B2}}$的差值表示
$d=\left| \frac{Ax_0+By_0}{\sqrt{A2+B2} }-\frac{-C}{\sqrt{A2+B2} } \right|=\frac{\left|Ax_0+By_0+C\right|}{\sqrt{A2+B2} }$

`