点到直线的距离公式

问题描述: 求点 $\vec c$ 到直线 $l$ 的距离, 其中直线 $l$ 经过点 $\vec a$ 和点 $\vec b$, 且 $\vec a \ne \vec b$.

一般公式

直线 $l$ 上点可以表示为 $\vec p = t\vec a + (1 - t)\vec b = \vec b + (\vec a - \vec b)t$, $\forall t \in \mathbb{R}$.

点 $\vec c$ 到点 $\vec p$ 的距离的平方为
$$\begin{aligned} d^2(t) &= \left\| {\vec c - \vec p} \right\|^2 \\ &= \left\| {\vec c - \vec b - (\vec a - \vec b)t} \right\|^2 \\ &= \left\| {\vec c - \vec b} \right\|^2 - 2\left\langle {\vec c - \vec b,\vec a - \vec b} \right\rangle t + {\left\| {\vec a - \vec b} \right\|^2}{t^2} \end{aligned}$$

根据一元二次方程的性质, 当 $t = \frac{\left\langle {\vec c - \vec b,\vec a - \vec b} \right\rangle }{\left\| {\vec a - \vec b} \right\|^2}$ 时, $d^2(t)$ 取得最小值, 该最小值即为点 $\vec c$ 到直线 $l$ 的距离的平方, 记为 $d_{min}^2$.

$$\begin{aligned} d_{min}^2 &= \left\| {\vec c - \vec b} \right\|^2 - 2\left\langle {\vec c - \vec b,\vec a - \vec b} \right\rangle t + {\left\| {\vec a - \vec b} \right\|^2}{t^2} \\ &= \left\| {\vec c - \vec b} \right\|^2 - \frac{ \left\langle {\vec c - \vec b, \vec a - \vec b} \right\rangle^2}{\left\| {\vec a - \vec b} \right\|^2} \end{aligned}$$

点到三维直线的距离公式

根据性质: $\|\vec u \times \vec v \|^2 + \langle \vec u, \vec v \rangle^2=\|\vec u\|^2 \|\vec v \|^2$, 可得:

$$d_{min}^2 =\frac{ \left\| \left(\vec c - \vec b \right) \times \left(\vec a - \vec b\right) \right\|^2}{\left\| {\vec a - \vec b} \right\|^2}$$
所以,
$$d_{min} =\frac{ \left\| \left(\vec c - \vec b \right) \times \left(\vec a - \vec b\right) \right\|}{\left\| {\vec a - \vec b} \right\|}$$

点到二维直线的距离公式

对于二维直线, 设其方程为 $A\left( {x - {x_0}} \right) + B\left( {y - {y_0}} \right) = 0$ , 求点 $\left( {{x_p},{y_p}} \right)$ 到其的距离. 由方程可见直线经过点 $\left( {{x_0},{y_0}} \right)$, 且方向向量为 $\left( { - B,A} \right)$ . 代入一般公式中:

$$\begin{aligned} d_{min}^2 &= (x_p - x_0)^2 + (y_p - y_0)^2 + \frac{(-B(x_p - x_0) + A(y_p - y_0))^2}{A^2 + B^2} \\ &= \frac{ \left(A(x_p - x_0) + B(y_p - y_0)\right)^2 }{A^2 + B^2} \end{aligned}$$
所以,
$$d_{min} = \frac{ \left|A(x_p - x_0) + B(y_p - y_0)\right| }{\sqrt{A^2 + B^2}}$$

参考:

  • https://mathworld.wolfram.com/Point-LineDistance3-Dimensional.html
  • https://www.zhihu.com/question/315808226/answer/1303779626

更新记录

  • 20210304, 发布

版权声明

版权声明: 自由分享, 保持署名-非商业用途-非衍生, 知识共享3.0协议.
如果你对本文有疑问或建议, 欢迎留言! 转载请保留版权声明!

版权归属: 采石工
本文链接: https://quarryman.cn/article/20210304
版权声明: 除特别声明外, 文章采用《署名-非商业性使用-相同方式共享 4.0 国际》许可协议.