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()
Last modified:2016/07/19 12:42:28
Keyword(s):
References: