056 · 現象
nbody
重力で引き合う点たち
40 個の点を距離の二乗に反比例する引力で互いに引き合わせ、渦をつくる多体問題。
点は円状にばらまき、初速を接線向きに与えて中心へ落ち込まずに回しはじめる。重さを 0.6〜3.0 でばらつかせ、重い点ほど大きく濃く、軽い点ほど小さく薄く描く。距離の二乗に soft²(28px)を足す softening で、ニアミス時の加速の暴発を抑える。中心へ係数 0.0009 のごく弱いバネを足して群れを画面に居つかせ、壁では 0.8 倍に削いで跳ね返し、速度は上限 4px とフレームごと 0.9995 倍の減衰で頭打ちにする。跡は毎フレーム消さず紙色を 0.07 の透明で塗り重ねて尾を伸ばす。
速度を持たせる状態更新を、エネルギーが漏れにくい kick-drift-kick の leapfrog で回し、長時間でも刻みが粗いと壊れる発散を抑える。総当たりで全点が全点を見るので計算は N の二乗で効く。