点到直线的距离

                     

贡献者: 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 $。

                     

© 小时科技 保留一切权利