如何实现轨迹为圆的动画,而又不会闪烁,并且逼真!

babys 2002-04-03 07:12:33
我在程序中使用的是X=R*COSa Y=R*SINa(a为角度,R为半径).使用双缓冲,在半径小的时候看起来还行,但是当半径大了以后,特别是当半径大于100以后,明显看出其弧的轨迹太大.移动的时候一点也不平滑(两点间隔太大了.我把TIMER的值设为1了仍然如此,设为100的时候不仅慢,而且间隔没变,)而要求就是在800*600的屏幕下平滑地实现移动.请教各位,应该用什么样的方法实现.虽然给的分少,但请大家帮帮我.谢谢.不甚感激!
...全文
94 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
babys 2002-04-03
  • 打赏
  • 举报
回复
因为半径是固定了的,用角度的增量的话,我的timer控件的时间已经设成1了,而转的高速与低速就只能靠a的增量的大小来决定了. 你有没有更好的办法呀,以前我曾想过用两点间的距离来求,但是又涉及到有两个解,怎么决定用哪个值,我觉得太麻烦,所以用了角度.
comefirst 2002-04-03
  • 打赏
  • 举报
回复
你可以把半径与timer 的interval 属性联系起来,半径大时时间间隔小一点,半径小时时间间隔大一点,试试看,
二毛豆打OI 2002-04-03
  • 打赏
  • 举报
回复
为了平滑的移动,你可以将 a角度的增量减小啊。
而设置timer控件,只是改变速度而已啦。
如果你timer控件值小,而且a的增量 a' 比较小的话,那么物体就是快速而平滑的运动了。

我估计你要设置一个循环,其中循环变量是 a ,增量为 a',才有上面的推测。不知道对不对
babys 2002-04-03
  • 打赏
  • 举报
回复
有没有哪位高人指点一二啊.谢谢啦.

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧