查找最近的线及其x,y位置

时间:2018-10-21 08:10:14

标签: math geometry line point

假设我有以下图形。我知道A,B,C,D,E的位置(x,y)。我的问题是如何找到与E点最近的线。我也想在点和最近的线之间绘制一条新线(蓝色)。如何找到(x,y)以便画线?

enter image description here

1 个答案:

答案 0 :(得分:1)

您需要将E点投影到直线AB上,确定该投影是否在AB段的范围内,并找到与投影点垂直的长度。 CD段也一样。

要找到投影点,请获取AB和AE的方向向量

AB = (B - A)
AE = (E - A)

并使用的标量积查找参数

 t = (AB * AE) / (AB * AB) 

如果t超出rnage 0..1,则线段的最近点是端点之一。否则找到投影点和投影长度

P = A + AB * t
Len = length(E - P)