行星引力

7

如何模拟不同质量的星球对飞船的影响?

我正在编写一个类似于小行星的Flash游戏,其中有一艘小飞船在穿越星球区域。这些星球不会相互施加力,只会对飞船产生作用。

类似于Java模拟器,但星球更大:

http://dan-ball.jp/en/javagame/planet/


1
你是否正在寻找一艘能够绕行行星的飞船? - MGZero
是的,但也会受到行星的质量影响。 - Steven Carlborg
1个回答

6
对于一个质量为 m 的星球,距离飞船的距离为 r,飞船会经历以下加速度: a = k m / r^2,
其中k是依赖于您使用的单位的一些常数。加速度将朝向行星。可能方便将加速度沿x和y轴分解(假设您在二维中工作)。如果行星在x-y平面中相对于船的角度为 thetaax = a cos(theta) ay = a sin(theta)
对于多个行星,您可以按组件方式添加加速度。
如果飞船在时间 t 具有初始速度 vx,则下一个时间步骤 t+delta_t 的速度将为: vx + ax * delta_t 如果此飞船在时间 t 具有初始位置 px,则在 t+delta_t时刻的位置将为: px + vx delta_t + ax delta_t^2 / 2
参见:运动方程

实际上,等一下,除了你的解决方案,我们能不能使用 F = mv²/r?将 ma 代入 F 并解出 v。当然,这是假设你的解决方案没有考虑到轨道的情况。 - MGZero
“F = mv^2 / r” 仅适用于匀速圆周运动。在重力场中进行任意运动时,它没有任何意义。 - tskuzzy
1
@MGZero:在适当的初始条件、单位、选择k和足够小的时间步长下,上述方程式就足以模拟轨道。 - Jim Lewis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接