时间校正的Verlet集成和太大的时间步长

the*_*neo 4 time physics collision verlet-integration

我使用此处的时间校正Verlet集成:http://www.gamedev.net/page/resources/_/technical/math-and-physics/a-simple-time-corrected-verlet-integration-method-r2200

但当我的球在墙上(水平墙,球在上面并且加速度向下)一段时间后,我的游戏无法以正确的方式识别碰撞并且球落下.如果我把固定的上限设置为delta时间,如1/60,它似乎有效.

我认为问题是时间太长了.但是时间校正后的verlet集成是为了避免太大的时间步长,这是对的吗?如果是的话,为什么我需要时间上限?

Aru*_*Aru 6

文章中给出的等式是错误的.当我得到它时,我得到了这个:

x = x + (x – xl)*h/hl + a*h*(h + hl)/2
Run Code Online (Sandbox Code Playgroud)

而不是他,这是:

x = x + (x – xl)*h/hl + a*h^2
Run Code Online (Sandbox Code Playgroud)

这是一个使用他的图表的例子:http: //i.stack.imgur.com/TL6HT.png

  • 看看我刚刚找到的,第三方确认!好吧,它通过应用程序确认,而不是派生.http://stackoverflow.com/questions/32709599/the-time-corrected-verlet-numerical-integration-fomula?lq=1 (3认同)
  • h是时间步长持续时间(增量时间),h1是前一个时间步长(前一个增量时间... l代表'last'),x和xl是位置,a是加速度.另外,我有点喜欢程序员的心态,所以它不是一个"等式",更像是赋值操作,其中x的值被重新赋值.我没有长时间看这个,所以我不能指出文章中的确切逻辑错误,但是它存在于某个地方,因为链接图像显示,文章误用或误导了它演示的每个集成方法.我刚刚展示了如何正确使用Verlet. (2认同)

小智 2

据我了解,时间校正的 Verlet 集成仅在帧速率波动时才有帮助,但如果基本帧速率太低则无济于事。