7

異なる質量の惑星が船に与える影響をどのようにシミュレートしますか?

私は小さな船が惑星のフィールドを航行する小惑星に似た Flash ゲームを書いています。惑星は互いに力を及ぼしませんが、船だけに力を及ぼします。

このJavaシミュレーションのようなものですが、より大きな惑星があります:

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

4

1 に答える 1

6

質量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

参照: 運動方程式

于 2011-08-12T17:11:51.093 に答える