点到直线的距离公式推导

点到直线的距离公式推导

本文地址:blog.lucien.ink/archives/495html

摘自 点到直线距离公式的几种推导 - 三横先生的文章 - 知乎 的三角形面积法,稍做修改并更正书写错误。web

原由

今天在 PPT 里看到一个点到超平面的距离公式 d = 1 w w x 0 + b d = \frac{ 1 }{ \left\| \boldsymbol w \right\| }| \boldsymbol w \cdot \boldsymbol x_0 + \boldsymbol b | ,看了半天没看懂为何这样算,遂去问学霸,答曰“平面状况下就是点到直线的距离公式”。app

万分惭愧,我连初中数学都忘了。ide

三角形面积法

图片来自知乎

直线 l l 方程为 A x + B y + C = 0 Ax + By + C = 0 A A B B 均不为 0 0 ,点 P ( x 0 , y 0 ) P(x_0, y_0) ,设点 P P l l 的距离为 d d svg

设点 R ( x R , y 0 ) R(x_R, y_0) ,点 S ( x 0 , y S ) S(x_0, y_S) 函数

R , S R, S 在直线 l l 上,获得spa

A x R + B y 0 + C = 0 Ax_R + By_0 + C = 0 A x 0 + B y S + C = 0 Ax_0 + By_S + C = 0 orm

因此xml

x R = B y 0 C A x_R = \frac{ -By_0 - C }{ A } y S = A x 0 C B y_S = \frac{ -Ax_0 - C }{ B } htm

P R = x 0 x R = x 0 B y 0 C A = A x 0 + B y 0 + C A | PR | = | x_0 - x_R | = | x_0 - \frac{ -By_0 - C }{ A } | = | \frac{ Ax_0 + By_0 + C }{ A } | P S = y 0 y S = y 0 A x 0 C B = A x 0 + B y 0 + C B | PS | = | y_0 - y_S | = | y_0 - \frac{ -Ax_0 - C }{ B } | = | \frac{ Ax_0 + By_0 + C }{ B } |

因而

R S = P R 2 + P S 2 = A 2 + B 2 A B A x 0 + B y 0 + C | RS | = \sqrt{ { PR }^2 + { PS }^2 } = \frac{ \sqrt{ A^2 + B^2 } }{ AB } \cdot | Ax_0 + By_0 + C |

Δ P S R \Delta_{PSR}

d R S = P R P S d \cdot | RS | = | PR | \cdot | PS |

d = P R P S R S = A x 0 + B y 0 + C A A x 0 + B y 0 + C B A 2 + B 2 A B A x 0 + B y 0 + C = A x 0 + B y 0 + C A 2 + B 2 d = \frac{ | PR | \cdot | PS | }{ | RS | } = \frac{ | \frac{ Ax_0 + By_0 + C }{ A } | \cdot | \frac{ Ax_0 + By_0 + C }{ B } | }{ \frac{ \sqrt{ A^2 + B^2 } }{ AB } \cdot | Ax_0 + By_0 + C | } = \frac{ | Ax_0 + By_0 + C | }{ \sqrt{ A^2 + B^2 } }

另外一种形式

设函数 f ( x , y ) = A x + B y + C f(x, y) = Ax + By + C ,直线 l : A x + B y + C = 0 l: Ax + By + C = 0 的法向量为 v ( A , B ) \boldsymbol v(A, B)

则点 P ( x 0 , y 0 ) P(x_0, y_0) 到直线 l l 的距离 d d

d = A x 0 + B y 0 + C A 2 + B 2 = f ( x 0 , y 0 ) v d = \frac{ | Ax_0 + By_0 + C | }{ \sqrt{ A^2 + B^2 } } = \frac{ f(x_0, y_0) }{ \left\| \boldsymbol v \right\| }

注: v \left\| \boldsymbol v \right\| 为向量 v \boldsymbol v 的 2-范数