查找最近的线及其 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)
假设我有下图。我知道 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)