1

私は JavaScript でちょっとした N-Body Simulation に取り組んでいます。思った通りに動いているのですが、何かおかしいことに気づきました。シミュレーションは verlet 積分器を使用し、力を累積する関数には次の行があります。

force.length = (this.gravity * pa.mass * pb.mass) / dist * dist;

前述したように、シミュレーションは期待どおりに機能しますが、コードが実際に読み取られるべきではありません。

force.length = (this.gravity * pa.mass * pb.mass) / (dist * dist);

距離の 2 乗に対する操作の順序は正しいですか? そのようにすると、シミュレーションが爆発します。ちょっと奇妙なことですが、間違った方法で正しく動作するか、または正しく動作するようです。問題が何であるかを知っている人はいますか?完全なコードと実行例は次のとおりです。

https://gist.github.com/arctwelve/ca5868f80d0b0cd5791e http://bl.ocks.org/arctwelve/ca5868f80d0b0cd5791e

ティア

4

2 に答える 2