使用这个积分公式的运动的缺点?

所以我阅读了Gaffron集成基础知识教程,并注意到Euler集成方法随着时间的推移出现了一个小错误。 我实现了RK4,注意到在不断加速的情况下,我可以简化公式。 在使用wolframalpha一个小时的过程中,我注意到这个公式最终只是简化了这个:

float dt = (float)gameTime.ElapsedGameTime.TotalSeconds; Position += (0.5f * Acceleration * dt + Velocity) * dt; Velocity += Acceleration * dt; 

我通过一个控制台运行它,果然,它给每个时间步和正确的最终值适当的值。

在这里输入图像说明

这个公式总会产生完全准确的答案吗? 我的加速度将始终保持不变。 这个配方有没有名字?

你已经发现了恒定线性加速度的方程。 这个方程用于均匀加速的情况下,以确定最终的位置和速度。

从本质上讲,你从加速开始,并在时间上积分,得到速度方程,并将其整合到方程中。

 a = a //Acceleration v = v0 + a*t //Initial velocity + acceleration times time s = s0 + (a*(t^2))/2 //Initial position + one half acceleration times time squared 

如果您始终有恒定的加速度,则可以随时使用此公式来计算位置和速度。 如果你每次从头开始计算,它应该给出准确的结果。 添加后续计算时,可以引入less量错误,例如在代码示例中使用+=进行计算。

然而,当你的加速度发生变化时,像处理重力时会出现许多错误。

使用恒定加速度的缺点是它通常不是很有趣。 你可以使用它的数量非常有限。

通常人们会以非常小的固定时间步长,通过改变加速度来计算物体的位置和速度。