点到直线的距离

             

  • 本词条处于草稿阶段.

   一点 $(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}
其中 $ \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} \left\lbrace \begin{aligned} 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)\\ k_1 \boldsymbol{\mathbf{r}} _0 \boldsymbol\cdot \hat{\boldsymbol{\mathbf{a}}} + k_2 \hat{\boldsymbol{\mathbf{r}}} _0 \boldsymbol\cdot ( \boldsymbol{\mathbf{r}} _1 - \boldsymbol{\mathbf{r}} _0) &= 0 \quad ( \boldsymbol{\mathbf{r}} _0 \boldsymbol\cdot \boldsymbol{\mathbf{n}} = 0)\\ \end{aligned} \right. \end{equation}

   容易验证的事实是,这个方程组的第二个方程只是第一个方程的 $ \boldsymbol{\mathbf{r}} _0 \boldsymbol\cdot \hat{\boldsymbol{\mathbf{a}}} $ 倍.因此实际上只有一个方程,为了简单化,令 $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$ 到直线的距离为

\begin{equation} \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{[ \hat{\boldsymbol{\mathbf{a}}} \boldsymbol\cdot ( \boldsymbol{\mathbf{r}} _1 - \boldsymbol{\mathbf{r}} _0)]^2+ \left\lvert \boldsymbol{\mathbf{r}} _1 - \boldsymbol{\mathbf{r}} _0 \right\rvert ^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}

  

未完成:公式简化与验证

致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择会员制,大量广告,内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 10 元,我们一个星期内就能脱离亏损, 并保证网站能在接下来的一整年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

         

© 小时科技 保留一切权利