二维空间
给定两点 p 1 , p 2 \ p1, p2 p1,p2可以生成一直线 p 1 p 2 ⃗ = p 1 ⃗ − p 2 ⃗ \vec{p_1p_2} =\vec{p_1} -\vec{p_2} p1p2 =p1 −p2
现有在直线外一点 p 0 {p_0} p0
上述三点以到坐标原点的向量表示为 p ⃗ = [ p x , p y ] T \vec{ p} =[p_x,p_y] ^T p =[px,py]T
因此,点到直线的距离公式可以表示为:
(注意,三点的坐标均用列向量进行表示)
p0 = [p0x ; p0y];
p1 = [p1x ; p1y];
p2 = [p2x ; p2y];
d = abs(det([p2-p1,p0-p1]))/norm(p2-p1);
若点的坐标为行向量
d = abs(det([p2-p1;p0-p1]))/norm(p2-p1);
三维空间
点为列向量时:
d = norm(cross(p2-p1,p0-p1))/norm(p2-p1);