为了账号安全,请及时绑定邮箱和手机立即绑定

小球弹起问题

如果没有阻力的话,第二次弹起的高度应该与抛下高度相同,但是实际是越来越高。是因为50ms的延迟吗?还是其他什么愿意

正在回答

2 回答

这是一个物理效果。着地的一瞬间,假设速度是100。然后以100的速度反方向上弹,以为有向下的加速度g在,所以这个-100+g就会 变成越小的正数,知道这个整数变为0。这时是小球的最高点,接着一直有重力g存在小球的ball.vy有开始向正数增大,关键来了。这次的增大是从0 开始的,而第一次下落是从ball.y是负值开始的,所有一开始我的vy(2)就比第一次vy(1)要快,因此到达地面是这个vy(2)的速度就比第一次到达终点的要大,所有第二次反弹的速度就变成了-102。而g不变,-102+g要经历更多的距离才能为0停止。所有第三次小球又比第二次高了,进而更高的地方掉落的小球到达地面的速度更加大,反弹又再次升高,这样递增下去。我是这样简单理解的。当然具体函数关系肯定不止是这么简单。

0 回复 有任何疑惑可以回复我~

vy: -5可以看到,vy的初始值是负的,balls[i].y += balls[i].vy;,此时y值变小,小球飞高。所以当g不为0时,有一个抛起的动作后,vy慢慢变正值,向下运动,即y值变大;但是当g为0后,vy一直是负值,且不会弹起,y值一直在变大,就越来越高了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
炫丽的倒计时效果Canvas绘图与动画基础
  • 参与学习       96725    人
  • 解答问题       999    个

学习HTML5中最激动人心的技术Canvas,彻底释放自己的创造力

进入课程

小球弹起问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信