【问题标题】:Planet's gravity行星的引力
【发布时间】:2011-10-25 23:58:09
【问题描述】:

你将如何模拟不同质量的行星对一艘船的影响?

我正在编写一个类似于小行星的 Flash 游戏,其中有一艘小船在行星场中航行。行星不会对彼此施加力,而只会对船施加力。

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

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

【问题讨论】:

  • 您在寻找能够绕行星运行的飞船吗?
  • 是的,但也会受到行星质量的影响。

标签: flash gravity


【解决方案1】:

对于质量为 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

见:Equations of motion

【讨论】:

  • 其实,等等,我们不能在你的解决方案之外,使用 F = mv²/r 吗?将 ma 插入 F 并求解 v。这当然是假设您的解决方案不考虑轨道。
  • F = mv^2 / r 仅用于匀速圆周运动。对于引力场中的任意运动,它没有任何意义。
  • @MGZero:有了适当的初始条件、单位、k 的选择以及足够小的时间步长,以上方程就可以模拟轨道。
猜你喜欢
  • 2012-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多