如何确定一个点是否在曲线上?

simple0407 2008-04-08 11:54:48
已知N个控制点,画出Bezier曲线,现在给出一个点的x,y坐标,
如何判断这个点是否在曲线上?还有容错值,求具体解决方式,VC下
...全文
621 11 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
趣味编程 2011-05-06
  • 打赏
  • 举报
回复
顶,值得收藏
vcPlayer 2008-04-08
  • 打赏
  • 举报
回复
既然能画出Bezier曲线,那就肯定知道它的表达式。你将在X误差范围内的值代入到该表达式求得Y,或Y也在误差内,则在曲线上。
pomelowu 2008-04-08
  • 打赏
  • 举报
回复
http://fengershishe.blog.163.com/blog/static/223380332007101551755233/
有詳細的計算坐標公式,反過來套用。
智能卡_Snooper 2008-04-08
  • 打赏
  • 举报
回复
x = (1-t)^3 *x0 + 3*t*(1-t)^2 *x1 + 3*t^2*(1-t) *x2 + t^3 *x3
y = (1-t)^3 *y0 + 3*t*(1-t)^2 *y1 + 3*t^2*(1-t) *y2 + t^3 *y3
( 1> t> 0 ),( x0 ,y0 ),( x1 ,y1 ),( x2 ,y2 ),( x3 ,y3 )为四个点坐标。

t足够密时,进行逐点判断。
simple0407 2008-04-08
  • 打赏
  • 举报
回复
搞定,散分,谢谢各位啊。。。
智能卡_Snooper 2008-04-08
  • 打赏
  • 举报
回复
那也没什么,总之有几个值比较几个值就可以了,t不是0-------1吗?
simple0407 2008-04-08
  • 打赏
  • 举报
回复
最新进展,我通过Bezier曲线展开把常量确定了,但是,又碰到了新问题,比如,对于一个点(x,y)把x带进公式的时候算出的y值是唯一的,但是,实际上,x坐标相同的情况下,曲线上的Y值有可能是2个值,那么,如何通过给定一个x坐标,确定2个不同的y值呢?假设公式已经导出
pomelowu 2008-04-08
  • 打赏
  • 举报
回复
Bezier曲綫公式很明確,而且為控制點所確定。用其他曲綫公式擬合難度會比較大……
菜牛 2008-04-08
  • 打赏
  • 举报
回复
上面都说了,就是根据公式来算。
simple0407 2008-04-08
  • 打赏
  • 举报
回复
可能我没有讲讲清楚,大家把问题想得比较简单了吧,我确定了一系列控制点,调用API画一条通过这些控制点的曲线,这个过程对我来说是透明的,注意,没有现成的公式套用,所以根本没办法一个点是否在这条曲线上,所以,我最需要做的应该就是把这条任意曲线拟合,也就是公式化,这才是最关键的,但是,我没办法找算法,根据2楼提供的资料,我算出了各个常数以后,将x,y带进去,好像不对啊。求确切算法
scq2099yt 2008-04-08
  • 打赏
  • 举报
回复
比较坐标
相关推荐
发帖
图形处理/算法

1.9w+

社区成员

VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
帖子事件
创建了帖子
2008-04-08 11:54
社区公告
暂无公告