【发布时间】:2011-10-25 23:58:09
【问题描述】:
你将如何模拟不同质量的行星对一艘船的影响?
我正在编写一个类似于小行星的 Flash 游戏,其中有一艘小船在行星场中航行。行星不会对彼此施加力,而只会对船施加力。
类似于 Java 模拟,但行星更大:
【问题讨论】:
-
您在寻找能够绕行星运行的飞船吗?
-
是的,但也会受到行星质量的影响。
你将如何模拟不同质量的行星对一艘船的影响?
我正在编写一个类似于小行星的 Flash 游戏,其中有一艘小船在行星场中航行。行星不会对彼此施加力,而只会对船施加力。
类似于 Java 模拟,但行星更大:
【问题讨论】:
对于质量为 m 的行星,在距离船 r 处,船将经历 加速度:
a = k m / r^2,
其中 k 是一个常数,取决于您使用的单位。加速度将 指向地球。分解加速度可能很方便 沿 x 和 y 轴进入其组件(假设您在二维中工作)。 如果行星在 x-y 平面上与船成角度 theta,
ax = a cos(theta)
ay = a sin(theta)
对于多个行星,您可以按分量添加加速度。
如果船在时间 t 有一个初始速度 vx,那么速度在 下一个时间步 t + delta_t 将是:
vx + ax * delta_t
如果这艘船在时间 t 位于初始位置 px,那么该位置 在 t + delta_t 将是:
px + vxdelta_t + axdelta_t^2 / 2
【讨论】:
F = mv^2 / r 仅用于匀速圆周运动。对于引力场中的任意运动,它没有任何意义。