public static double Distance(DirLineSeg <Vec2> u, DirLineSeg <Vec2> v) { double d1 = VecX.Length(Distance(v.p - u.p, u.d)); double d2 = VecX.Length(Distance(v.p + v.d - u.p, u.d)); double d3 = VecX.Length(Distance(u.p - v.p, v.d)); double d4 = VecX.Length(Distance(u.p + u.d - v.p, v.d)); double d = Math.Min(Math.Min(d1, d2), Math.Min(d3, d4)); return(d); }