Subscribed unsubscribe Subscribe Subscribe

chipmunk に万有引力を設定する 1

無次元化した形で設定する。すなわち \frac{G M T^2}{L^3}=1 として計算する(G は万有引力定数、M は質量の単位、T は時刻の単位、L は長さの単位)。
まず 2 体だけで考える。
f:id:ti-nspire:20160523132946p:plain

posA -- A の位置。
posB -- B の位置。

massA -- A の質量。
massB -- B の質量。

vectAB     = posB - posA        -- A から B に向かうベクトルを求める。
lengthABsq = vectAB:lengthsq()  -- そのベクトルの距離の二乗を求める。
normAB     = vectAB:normalize() -- 単位ベクトルも求める。

forceA =  normAB:mult(massA * massB/lengthABsq) -- A にかかる force を求める。
forceB = -forceA                                -- B にかかる force を求める。

参考:

パソコンで見る天体の動き

パソコンで見る天体の動き

p.130-131, 184

Remove all ads