标签: math geometry line point
假设我有以下图形。我知道A,B,C,D,E的位置(x,y)。我的问题是如何找到与E点最近的线。我也想在点和最近的线之间绘制一条新线(蓝色)。如何找到(x,y)以便画线?
答案 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)