我需要一个函数来找到两条线段之间的最短距离。线段由两个端点定义。例如,我的一个线段 (AB) 将由两个点 A (x1,y1) 和 B (x2,y2) 定义,另一个 (CD) 将由两个点 C (x1,y1) 定义和 D (x2,y2)。
随意用您想要的任何语言编写解决方案,我可以将其翻译成 javascript。请记住,我的几何技能非常生疏。我已经看过 here而且我不确定如何将其转换为函数。非常感谢您的帮助。
最佳答案
这是二维的吗?如果是这样,答案只是点 A 和线段 CD、B 和 CD、C 和 AB 或 D 和 AB 之间的最短距离。所以这是一个相当简单的“点和线之间的距离”计算(如果距离都相同,那么线是平行的)。
This site explains the algorithm for distance between a point and a line pretty well.
在 3 维中稍微有点棘手,因为线条不一定在同一平面上,但这里似乎并非如此?
关于language-agnostic - 两条线段之间的最短距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2824478/