本文描述了在任意维度空间中寻找两线段之间最小距离的数学框架。它定义了平方距离函数,处理了退化情况,区分了平行和非平行线段,并确定了潜在的临界点。

1. 线段的参数化表示:

两条线段用参数化形式定义:

2. 平方距离函数:

线段上任意两点 P(s)Q(t) 之间的平方距离由以下二次函数给出:

$R(s, t) = |P(s) - Q(t)|^2 = as^2 - 2bst + ct^2 + 2ds - 2et + f$

其中系数 abcdef 使用线段端点差的向量点积定义。

3. 退化情况:

该算法处理了一条或两条线段长度为零(变成点)的退化情况。这简化为点到线段或点到点的距离计算。

4. 平行和非平行线段:

5. 最小化策略:

目标是找到 R(s, t) 在单位正方形 [0, 1] x [0, 1](表示 st 的有效范围)内的最小值。最小值可能出现在: