二维空间

给定两点 p1,p2\ p1, p2 p1,p2可以生成一直线p1p2⃗=p1⃗−p2⃗\vec{p_1p_2} =\vec{p_1} -\vec{p_2}p1p2 =p1 p2

现有在直线外一点p0{p_0}p0

上述三点以到坐标原点的向量表示为p⃗=[px,py]T\vec{ p} =[p_x,p_y] ^Tp =[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);
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐