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

Finding nearest line and its x,y location

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

需要将点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)