The mathematical framework for finding the minimum distance between two line segments. It defines the squared distance function, handles degenerate cases, distinguishes between parallel and non-parallel segments, and identifies potential critical points. It concludes by mentioning that a more efficient algorithm is needed but doesn't provide the details.
1. Parametric Representation of Line Segments:
The two line segments are defined parametrically:
$P(s) = (1-s)P0 + sP1$
, where s
ranges from 0 to 1.$Q(t) = (1-t)Q0 + tQ1$
, where t
ranges from 0 to 1.$P_0$
and $P_1$
are the endpoints of the first segment, and $Q_0$
and $Q_1$
are the endpoints of the second segment.2. Squared Distance Function:
The squared distance between any two points on the segments, P(s)
and Q(t)
, is given by the quadratic function:
$R(s, t) = |P(s) - Q(t)|^2 = as^2 - 2bst + ct^2 + 2ds - 2et + f$
where the coefficients a
, b
, c
, d
, e
, and f
are defined using dot products of the segment endpoints' differences.
3. Degenerate Cases:
The algorithm handles degenerate cases where one or both segments have zero length (becoming points). This simplifies to a point-segment or point-point distance calculation.
4. Parallel and Non-Parallel Segments:
$Δ = ac - b^2$
determines whether the segments are parallel.$Δ > 0$
, the segments are not parallel. $R(s, t)$
represents a paraboloid.$Δ = 0$
, the segments are parallel. $R(s, t)$
represents a parabolic cylinder.5. Minimization Strategy:
The goal is to find the minimum of $R(s, t)$
within the unit square [0, 1] x [0, 1]
(representing the valid range of s
and t
). The minimum can occur either:
R
is zero.