点到直线的距离公式推导
本文地址:blog.lucien.ink/archives/495
摘自 点到直线距离公式的几种推导 - 三横先生的文章 - 知乎 的三角形面积法,稍作修改并更正书写错误。
起因
今天在 PPT 里看到一个点到超平面的距离公式 d=∥w∥1∣w⋅x0+b∣,看了半天没看懂为什么这样算,遂去问学霸,答曰“平面情况下就是点到直线的距离公式”。
万分惭愧,我连初中数学都忘了。
三角形面积法

直线 l 方程为 Ax+By+C=0,A、B 均不为 0,点 P(x0,y0),设点 P 到 l 的距离为 d。
设点 R(xR,y0),点 S(x0,yS)。
由 R,S 在直线 l 上,得到
AxR+By0+C=0Ax0+ByS+C=0
所以
xR=A−By0−CyS=B−Ax0−C
即
∣PR∣=∣x0−xR∣=∣x0−A−By0−C∣=∣AAx0+By0+C∣∣PS∣=∣y0−yS∣=∣y0−B−Ax0−C∣=∣BAx0+By0+C∣
于是
∣RS∣=PR2+PS2=ABA2+B2⋅∣Ax0+By0+C∣
由 ΔPSR 得
d⋅∣RS∣=∣PR∣⋅∣PS∣
即
d=∣RS∣∣PR∣⋅∣PS∣=ABA2+B2⋅∣Ax0+By0+C∣∣AAx0+By0+C∣⋅∣BAx0+By0+C∣=A2+B2∣Ax0+By0+C∣
另一种形式
设函数 f(x,y)=Ax+By+C,直线 l:Ax+By+C=0 的法向量为 v(A,B)。
则点 P(x0,y0) 到直线 l 的距离 d 为
d=A2+B2∣Ax0+By0+C∣=∥v∥f(x0,y0)
注:∥v∥ 为向量 v 的 2-范式