你将如何模拟不同质量的行星对一艘船的影响?
我正在编写一个类似于小行星的 Flash 游戏,它有一艘小船在行星场中航行。行星不会对彼此施加力,而只会对船施加力。
类似于这个 Java 模拟,但有更大的行星:
你将如何模拟不同质量的行星对一艘船的影响?
我正在编写一个类似于小行星的 Flash 游戏,它有一艘小船在行星场中航行。行星不会对彼此施加力,而只会对船施加力。
类似于这个 Java 模拟,但有更大的行星:
对于质量为m的行星,在距离船r处,船将经历加速度:
a = k m / r ^2,
其中 k 是一些常数,取决于您使用的单位。加速度将指向行星。将加速度分解为沿 x 和 y 轴的分量可能会很方便(假设您在二维中工作)。如果行星在 xy 平面上与船成角度theta ,
a x = a cos( θ )
a y = sin ( theta )
对于多个行星,您可以按分量添加加速度。
如果船在时间t有一个初始速度v x,那么在下一个时间步t + delta_t的速度将是:
v x + a x * delta_t
如果这艘船在时间 t处于初始位置p x ,那么t + delta_t处的位置将是:
p x + v x delta_t + a x delta_t ^2 / 2
参见: 运动方程