主题
Search

点线距离——二维


PointLineDistance2D

斜截式直线方程 ax+by+c=0 由下式给出

 y=-a/bx-c/b,
(1)

所以直线的斜率 -a/b。现在考虑从点 (x_0,y_0) 到直线的距离。直线上的点具有向量坐标

 [x; -a/bx-c/b]=[0; -c/b]-1/b[-b; a]x.
(2)

因此,向量

 [-b; a]
(3)

平行于直线的,并且向量

 v=[a; b]
(4)

垂直于直线的。现在,从点到直线的向量由下式给出

 r=[x-x_0; y-y_0].
(5)

r 投影到 v,

d=|proj_(v)r|
(6)
=(|v·r|)/(|v|)
(7)
=|v^^·r|
(8)
=(|a(x-x_0)+b(y-y_0)|)/(sqrt(a^2+b^2))
(9)
=(|ax+by-ax_0-by_0|)/(sqrt(a^2+b^2))
(10)
=(|ax_0+by_0+c|)/(sqrt(a^2+b^2)).
(11)
PointLineDistance2DVec

如果直线由两点 x_1=(x_1,y_1)x_2=(x_2,y_2) 指定,则垂直于直线的向量由下式给出

 v=[y_2-y_1; -(x_2-x_1)].
(12)

r 是从点 x_0=(x_0,y_0) 到直线上第一个点的向量

 r=[x_1-x_0; y_1-y_0],
(13)

那么,从 (x_0,y_0) 到直线的距离再次通过将 r 投影到 v 给出,得到

 d=|v^^·r|=(|(x_2-x_1)(y_1-y_0)-(x_1-x_0)(y_2-y_1)|)/(sqrt((x_2-x_1)^2+(y_2-y_1)^2)).
(14)

正如它必须的那样,这个公式对应于三维情况下的距离

 d=(|(x_2-x_1)x(x_1-x_0)|)/(|x_2-x_1|)
(15)

所有向量的 z 分量都为零,并且可以写成稍微更简洁的形式

 d=(|det(x_2-x_1  x_1-x_0)|)/(|x_2-x_1|),
(16)

其中 det(A) 表示行列式

具有精确三线坐标 (alpha^',beta^',gamma^') 的点与直线 lalpha+mbeta+ngamma=0 之间的距离是

 d=(|lalpha^'+mbeta^'+ngamma^'|)/(sqrt(l^2+m^2+n^2-2mncosA-2nlcosB-2lmcosC))
(17)

(Kimberling 1998, p. 31)。


另请参阅

共线, 点线距离——三维

使用 Wolfram|Alpha 探索

参考文献

Kimberling, C. "Triangle Centers and Central Triangles." Congr. Numer. 129, 1-295, 1998.

请引用本文为

Weisstein,Eric W. "Point-Line Distance--2-Dimensional." 来自 MathWorld—— Wolfram Web 资源。 https://mathworld.net.cn/Point-LineDistance2-Dimensional.html

主题分类