计算平面上两条线段之间的最短距离:
两线段用其端点s1: (p1a,p1b),s2: (p2a,p2b)表示
s1, s2上距离最近的两点之间的距离d(s1,s2),定义为。分为三种情况讨论。
a. 若两线段有交点,距离d为0
b. 计算两线段端点到对方线段所在直线l1, l2的距离。
d(p1a,l2), d(p1b,l2), d(p2a,l1),d(p2b,l1)
选择距离最小,且垂足落在对方线段内的,作为d(s1,s2)
c. 若四个垂足都落在对方线段外,计算四个端点两两匹配的距离作为d(s1,s2)
From: http://hi.baidu.com/gildor/item/4ac5bc105ec5780fb88a1a67