MATLAB 计算点到直线的距离

二维空间

给定两点   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} p1​p2​ ​=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);
上一篇:博弈论


下一篇:821. Shortest Distance to a Character