有两个由线段(已知所有线段的起始点坐标)组成的封闭轮廓,求两个轮廓间的最近距离?

解决方案 »

  1.   

    两线段用其端点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)
    然后遍历 所有的线段。 解2次方程