SolorSystemWithProcessing
Solar systemの視覚化を示す.Maple版との違いは以下の通り.
- processingによるinteractiveな動作の実現
- Verlet法による軌跡計算
- rp5によるruby言語によるprocessing操作
- 体裁を整えたreportの見本作成
Solar system
Modeling物理で視覚化を考えていた時のもっとも初期に思いついた 視覚化の例.太陽の重力場を彗星が運行するのを3次元的に表示. 当時,小学4年生でも理解できて,こちらが感動した.
Verlet法のcode
もっともcoreとなる彗星の運行軌跡の計算部.大域Array変数$coordに
初期値から初めて,次々に軌跡を代入していく.
{{dmath 'dx=x-y'}}Hiki::PluginException (not plugin method): inline plugin
$coord = Array::new(400,[0.0,0.0])
$coord[1] = [2.00, -0.01]
$coord[0] = [2.00, 0.00]
$m,$h=0.2,0.01
$k = 0
def setup()
# size( 1000, 600, P3D);
392.times {|i|
$coord[i+2] = verlet($coord[i+1], $coord[i]);
printf "%4d%10.5f%10.5f\n", i,$coord[i+2][0],$coord[i+2][1]
}
end
def force(pos)
x,y=pos[0],pos[1]
l= (x*x+y*y)**(1.5)
return [-x/l,-y/l]
end
def verlet(cur,prev)
pf = force(cur);
x=2.0*cur[0]-prev[0]+$h*$h/$m*pf[0];
y=2.0*cur[1]-prev[1]+$h*$h/$m*pf[1];
return [x,y]
end
setup()
Keyword(s):
References: