贡献者: hfb25; addis
一点 $(x_1,y_1)$ 到直线 $ax + by + c = 0$ 的最短距离为
\begin{equation}
\frac{ \left\lvert ax_1 + by_1 + c \right\rvert }{\sqrt{a^2 + b^2}}~.
\end{equation}
最近点的坐标为
\begin{equation}
\left(
\frac{b^2x_1 - aby_1 - ac}{a^2 + b^2}, \quad
\frac{a^2y_1 - abx_1 - bc}{a^2 + b^2} \right) ~.
\end{equation}
1. 推导
根据垂线段最短,点 $(x_1, y_1)$ 距离直线 $ax + by + c = 0$ 最近的点也位于该直线的垂线上。
过点 $(x_1, y_1)$ 且垂直于直线 $ax+by+c=0$ 的直线方程为
\begin{equation}
bx - ay - bx_1 - ay_1 = 0~.
\end{equation}
它与直线 $ax + by + c = 0$ 的交点 $(x_2, y_2)$ 满足
\begin{equation}
\left\lbrace
\begin{aligned}
ax_2 + by_2 + c &= 0\\
bx_2 - ay_2-bx_1 + ay_1 &= 0
\end{aligned}~.
\right.
\end{equation}
解得
\begin{equation}
\left\lbrace
\begin{aligned}
x_2=\frac{b^2x_1 - aby_1 - ac}{a^2 + b^2}\\
y_2=\frac{a^2y_1 - abx_1 - bc}{a^2 + b^2}
\end{aligned}~.
\right.
\end{equation}
根据两点距离公式得
\begin{equation}
\begin{split}
d&=\sqrt{(x_1-\frac{b^2x_1 - aby_1 - ac}{a^2 + b^2})^2 + (y_1-\frac{a^2y_1 - abx_1 - bc}{a^2 + b^2})^2}\\
&=\frac{1}{a^2 + b^2}\sqrt{(a^2x_1 + aby_1 + ac)^2 + (b^2y_1 + abx_1 + bc)^2}\\
&=\frac{1}{\sqrt{a^2 + b^2}}\sqrt{(ax_1 + by_1 + c)^2}\\[3pt]
&=\frac{ \left\lvert ax_1 + by_1 + c \right\rvert }{\sqrt{a^2 + b^2}}~.\\
\end{split}
\end{equation}
2. 推导 2
设直线 $ax + by + c = 0$ 的法向量为 $ \boldsymbol{\mathbf{n}} $,则
\begin{equation}
\boldsymbol{\mathbf{a}} \boldsymbol\cdot \boldsymbol{\mathbf{n}} = \cos \frac{\pi}{2} = 0~,
\end{equation}
所以 $ \boldsymbol{\mathbf{n}} =(a,b)$。其中 $ \boldsymbol{\mathbf{a}} =(b,-a)$,称为直线的方向向量。
那么直线的单位法向量(背向原点)为 $ \hat{\boldsymbol{\mathbf{n}}} = (-a/d, -b/d)$,其中
\begin{equation}
d = \sqrt{a^2 + b^2}~.
\end{equation}
未完成:图
若令原点到直线上任意一点的矢量为 $ \boldsymbol{\mathbf{r}} $,那么直线方程可以表示为
\begin{equation}
\boldsymbol{\mathbf{r}} \boldsymbol\cdot \hat{\boldsymbol{\mathbf{n}}} = \frac{c}{d}~,
\end{equation}
即直线到原点的距离为 $c/\sqrt{a^2 + b^2}$。
令任意一点为 $ \boldsymbol{\mathbf{r}} _1 = (x_1, y_1)$,那么 $ \boldsymbol{\mathbf{r}} _1$ 到直线的距离为
\begin{equation}
\left\lvert ( \boldsymbol{\mathbf{r}} _1 - \boldsymbol{\mathbf{r}} ) \boldsymbol\cdot \hat{\boldsymbol{\mathbf{n}}} \right\rvert = \left\lvert \boldsymbol{\mathbf{r}} _1 \boldsymbol\cdot \hat{\boldsymbol{\mathbf{n}}} - \boldsymbol{\mathbf{r}} \boldsymbol\cdot \hat{\boldsymbol{\mathbf{n}}} \right\rvert
= \frac{ \left\lvert ax_1 + by_1 + c \right\rvert }{\sqrt{a^2 + b^2}}~.
\end{equation}
未完成:推导过程配图
3. 高维情形
未完成:预备知识
我们将推导 2拓展到有限维的情况。
考虑一条 $n(n>2)$ 维空间中的直线,它的方程可以表示为
\begin{equation}
\boldsymbol{\mathbf{r}} = \boldsymbol{\mathbf{r}} _0 + \lambda \hat{\boldsymbol{\mathbf{a}}} ~.
\end{equation}
其中 $ \boldsymbol{\mathbf{r}} _0$ 是原点到直线上某点的矢量,$ \hat{\boldsymbol{\mathbf{a}}} $ 是直线的单位方向向量($n$ 维)。$\lambda$ 是一个参数,表示点在直线上的位置。
未完成:图
令任意一点为 $ \boldsymbol{\mathbf{r}} _1$。
设与 $ \boldsymbol{\mathbf{r}} _1 - \boldsymbol{\mathbf{r}} _0$ 共面的直线的法向量 $ \boldsymbol{\mathbf{n}} =k_1 \hat{\boldsymbol{\mathbf{a}}} + k_2 ( \boldsymbol{\mathbf{r}} _1 - \boldsymbol{\mathbf{r}} _0)$,则有下列方程
\begin{equation}
k_1 + k_2 \hat{\boldsymbol{\mathbf{a}}} \boldsymbol\cdot ( \boldsymbol{\mathbf{r}} _1 - \boldsymbol{\mathbf{r}} _0) = 0 \quad ( \hat{\boldsymbol{\mathbf{a}}} \boldsymbol\cdot \boldsymbol{\mathbf{n}} = 0)~.
\end{equation}
上述方程有无数个解,为了简单化,令 $k_2 = -1$。我们得到
\begin{equation}
\boldsymbol{\mathbf{n}} = [ \hat{\boldsymbol{\mathbf{a}}} \boldsymbol\cdot ( \boldsymbol{\mathbf{r}} _1 - \boldsymbol{\mathbf{r}} _0)] \hat{\boldsymbol{\mathbf{a}}} - ( \boldsymbol{\mathbf{r}} _1 - \boldsymbol{\mathbf{r}} _0)~.
\end{equation}
点 $ \boldsymbol{\mathbf{r}} _1$ 到直线的距离为1
\begin{equation}
d=\frac{1}{ \left\lvert \boldsymbol{\mathbf{n}} \right\rvert } \left\lvert ( \boldsymbol{\mathbf{r}} _1 - \boldsymbol{\mathbf{r}} _0) \boldsymbol\cdot \boldsymbol{\mathbf{n}} \right\rvert =\frac{ \left\lvert \boldsymbol{\mathbf{r}} _1 - \boldsymbol{\mathbf{r}} _0 \right\rvert ^2 - [ \hat{\boldsymbol{\mathbf{a}}} \boldsymbol\cdot ( \boldsymbol{\mathbf{r}} _1 - \boldsymbol{\mathbf{r}} _0)]^2
}{ \left\lvert [ \hat{\boldsymbol{\mathbf{a}}} \boldsymbol\cdot ( \boldsymbol{\mathbf{r}} _1 - \boldsymbol{\mathbf{r}} _0)] \hat{\boldsymbol{\mathbf{a}}} - ( \boldsymbol{\mathbf{r}} _1 - \boldsymbol{\mathbf{r}} _0) \right\rvert }~.
\end{equation}
我们可以知道
\begin{equation}
\left\lvert ( \boldsymbol{\mathbf{x}} \boldsymbol\cdot \boldsymbol{\mathbf{y}} ) \boldsymbol{\mathbf{y}} - \boldsymbol{\mathbf{x}} \right\rvert ^2=( \boldsymbol{\mathbf{x}} \boldsymbol\cdot \boldsymbol{\mathbf{y}} )^2 ( \left\lvert \boldsymbol{\mathbf{y}} \right\rvert ^2-2) + \left\lvert \boldsymbol{\mathbf{x}} \right\rvert ^2~,
\end{equation}
所以
\begin{equation}
d= \left\lvert [ \hat{\boldsymbol{\mathbf{a}}} \boldsymbol\cdot ( \boldsymbol{\mathbf{r}} _1 - \boldsymbol{\mathbf{r}} _0)] \hat{\boldsymbol{\mathbf{a}}} - ( \boldsymbol{\mathbf{r}} _1 - \boldsymbol{\mathbf{r}} _0) \right\rvert ~.
\end{equation}
容易证明上述公式与 $ \boldsymbol{\mathbf{r}} _0$ 的选取无关,因为 $d$ 是一个几何量。
如果我们取 $ \boldsymbol{\mathbf{r}} _1=0$,则上述公式可以简化为
\begin{equation}
d= \left\lvert \boldsymbol{\mathbf{r}} _0 - ( \hat{\boldsymbol{\mathbf{a}}} \boldsymbol\cdot \boldsymbol{\mathbf{r}} _0) \hat{\boldsymbol{\mathbf{a}}} \right\rvert ~,
\end{equation}
这就是直线到原点的距离。
未完成:图
1. ^ $ \left\lvert \boldsymbol{\mathbf{x}} \boldsymbol\cdot \boldsymbol{\mathbf{y}} \right\rvert \leq \left\lvert \boldsymbol{\mathbf{x}} \right\rvert \left\lvert \boldsymbol{\mathbf{y}} \right\rvert $。
致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者
热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 20 元,我们一周就能脱离亏损, 并在接下来的一年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。