请教,如何求弧到线段的最近点(所有参数已知)

解决方案 »

  1.   

    可参考http://blog.sina.com.cn/s/blog_4c3474270100yepx.html
    至于弧到线段的最近点,则可做一个循环,遍历弧上若干点即可。弧上点应该满足圆的方程,其坐标表示楼主可查下课本。
      

  2.   

    笨的方法就是弧的所有点一次和线段的所有点求距离,然后找到最小的。
    可以定义两个结构体
    struct
    {
       CPoint pt;
       float flen;
    }
    然后用两个结构体求距离保存在flen;然后flen找到最小的。
      

  3.   

    我觉得可以用参数方程分别表示出弧和线段。
    对于弧:x1=fx(t);y1=fy(t)
    对于线段:x2=lx(p);y2=ly(p)
    那么,距离为 (x1-x2)^2+(y1-y2)^2 的平方根。
    代入则 (fx(t)-lx(p))^2+(fy(t)-ly(p))^2。
    化简后,计算出这个二元函数的最值,得到参数取值,再代入即可求出最近点。
      

  4.   


    分别对t,p求偏导,因为具有极值的点,偏导为0,几何意义就是曲面的峰和谷,可以解出零个一个或多个t,p值,只要在范围内的,都可以去计算函数的值。然后计算下四个界限点的取值。在这些值中,取最小的。