このプログラムの主要部分は以下の通り。
gs=new Phystem("canvas1",10,10,0.6); gs.makeEdge(0.3); gs.makeGravity(1); gs.makeAir(0.1); M =new DynamicalObject(gs, 0, 0,0,0,1,"rgba(0,0,255,0.5)",0.3); m1=new DyynamicalObject(gs,0,-2,0,0,1,"rgba(255,0,0,0.5)",0.3); m2=new DynamicalObject(gs,-2,-2,0,0,1,"rgba(255,0,0,0.5)",0.3); con1=new Connector(gs,M,m1,0,"rgba(0,0,0,0.5)"); con2=new Connector(gs,m2,m1,0,"rgba(0,0,0,0.5)"); con3=new Connector(gs,m2,M,0,"rgba(0,0,0,0.5)"); M.enableDrag(); gs.start();
最初の行から順番に説明しておこう。
1行目のgs=new Phystem("canvas1",10,10,0.6);では、今から物体が運動する舞台である「系」を作る。10,10はその縦横の幅。0.6は、画面の横幅に占める割合(つまりこの場合、画面の60%の幅の舞台ができる)。
2行目のgs.makeEdge(0.3);は舞台の外に物体が出ないようにする「壁」を作る(壁の幅は0.3)。
3行目のgs.makeGravity(1);はこの系の中にいる物体に強さ1の重力を働かせる。
4行目のgs.makeAir(0.1);は空気抵抗を作る。
このプログラムには三つの物体がある。3つの物体を作っているのがそれに続く3行で、
M =new DynamicalObject(gs, 0, 0,0,0,1,"rgba(0,0,255,0.5)",0.3);で、位置(0,0)に一個目の物体を、
m1=new DyynamicalObject(gs,-2, 0,0,0,1,"rgba(255,0,0,0.5)",0.3);で、位置(-2,0)に2個めの物体を、
m2=new DynamicalObject(gs,-2,-2,0,0,1,"rgba(255,0,0,0.5)",0.3);で、位置(-2,0)に3個めの物体を作る。
その次の3行、
con1=new Connector(gs,M,m1,0,"rgba(0,0,0,0.5)"); con2=new Connector(gs,m2,m1,0,"rgba(0,0,0,0.5)"); con3=new Connector(gs,m2,M,0,"rgba(0,0,0,0.5)");
で3つの物体を「コネクタ」でつないでいる。