|
|
1
2
我的猜测是,你的问题源于积分方法中的数值错误。看起来你使用的是欧拉方法,因为它是一阶积分方法,所以容易出现较大的数值误差。我会推荐 velocity verlet 用于数值积分轨道,因为这是一种二阶方法,也将总能量(动能+引力势)保持在机器精度。这种能量守恒通常使速度verlet比4阶更稳定 RungeâKutta ,因为有界轨道保持有界。 此外,您可能需要考虑使用动态时间步长,而不是静态时间步长。当粒子闭合在一起时,速度和位置变化得更快。因此,为了减少您的数值误差,您需要采取较小的时间步长。
最后,我会做你的限制器(
|
|
|
2
0
我以前也遇到过这个问题。如果你直接去龙格库塔,一切都会自行解决的。本pdf将解释如何结合该方法: http://spiff.rit.edu/richmond/nbody/OrbitRungeKutta4.pdf 祝你好运 |
|
Steampunkery · Slick2D中的跳跃难度 10 年前 |