異なる質量の惑星が船に与える影響をどのようにシミュレートしますか?
私は小さな船が惑星のフィールドを航行する小惑星に似た Flash ゲームを書いています。惑星は互いに力を及ぼしませんが、船だけに力を及ぼします。
このJavaシミュレーションのようなものですが、より大きな惑星があります:
異なる質量の惑星が船に与える影響をどのようにシミュレートしますか?
私は小さな船が惑星のフィールドを航行する小惑星に似た Flash ゲームを書いています。惑星は互いに力を及ぼしませんが、船だけに力を及ぼします。
このJavaシミュレーションのようなものですが、より大きな惑星があります:
質量mの惑星の場合、船からrの距離にあると、船は加速度を経験します。
a = k m / r ^2、
ここで、k は、使用している単位に依存する定数です。加速は惑星に向けられます。加速度を x 軸と y 軸に沿ったコンポーネントに分割すると便利な場合があります (2 次元で作業していると仮定します)。船に対して、惑星が xy 平面で角度シータにある場合、
a x = a cos(シータ)
a y = a sin(シータ)
複数の惑星の場合、コンポーネントごとに加速度を追加するだけです。
船の初期速度が時間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
参照: 運動方程式