请教,如何求弧到线段的最近点(所有参数已知)????????? 请教,如何求弧到线段的最近点(所有参数已知) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可参考http://blog.sina.com.cn/s/blog_4c3474270100yepx.html至于弧到线段的最近点,则可做一个循环,遍历弧上若干点即可。弧上点应该满足圆的方程,其坐标表示楼主可查下课本。 笨的方法就是弧的所有点一次和线段的所有点求距离,然后找到最小的。可以定义两个结构体struct{ CPoint pt; float flen;}然后用两个结构体求距离保存在flen;然后flen找到最小的。 我觉得可以用参数方程分别表示出弧和线段。对于弧: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。化简后,计算出这个二元函数的最值,得到参数取值,再代入即可求出最近点。 分别对t,p求偏导,因为具有极值的点,偏导为0,几何意义就是曲面的峰和谷,可以解出零个一个或多个t,p值,只要在范围内的,都可以去计算函数的值。然后计算下四个界限点的取值。在这些值中,取最小的。 MFC问题,拜谢各位! CListBox不响应MeasureItem的问题! 关于Windows消息循环与普通循环对比的一个疑惑 怎么定义对象? 关于字体的问题? 一个VC群,VC爱好者快进来!! 关于windows程序设计的问题,高手请指点 MFC会不会自动释放GDI资源 数据库问题!急!!!!解决了立即给分! CFormView怎么显示到CDialog?? 使用API函数如何添加菜单 新手求助,关于数组输入的问题.
至于弧到线段的最近点,则可做一个循环,遍历弧上若干点即可。弧上点应该满足圆的方程,其坐标表示楼主可查下课本。
可以定义两个结构体
struct
{
CPoint pt;
float flen;
}
然后用两个结构体求距离保存在flen;然后flen找到最小的。
对于弧: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。
化简后,计算出这个二元函数的最值,得到参数取值,再代入即可求出最近点。
分别对t,p求偏导,因为具有极值的点,偏导为0,几何意义就是曲面的峰和谷,可以解出零个一个或多个t,p值,只要在范围内的,都可以去计算函数的值。然后计算下四个界限点的取值。在这些值中,取最小的。