矢印の表示/非表示は右のボタンで調整→


 このプログラムの主要部分は以下の通り。

	   psystem=new Phystem("canvas1",10,10,0.6);
	   psystem.makeEdge(0.3);
	   psystem.makeGravity(1);
	   M=new NonDynamicalObject(psystem,0,0,"rgba(0,100,100,0.5)");
	   M.r=0.1;
	   M.enableDrag();
	   m1=new DynamicalObject(psystem,-3,0,0,0,1,"rgba(0,0,255,0.5)");
	   m1.enableDrag();
	   con=new Connector(psystem,M,m1,"rgba(0,0,0,0.5)");
	   psystem.start();
	

 最初の3行は「系を作り、壁と重力を加える」という作業である。

 このプログラムには三つの物体がある。

 一つ目の物体はMである。M=new NonDynamicalObject(psystem,0,0,"rgba(0,100,100,0.5)");で、「動かない物体(NondDynamicalObject)を作り、系psystemの場所(0,0)に置いている。色をrgba(0,100,100,0.5)にした。次の行のM.r=0.1;で、半径を0.1にしている。

 二つ目の物体はm1であり、m1=new DynamicalObject(psystem,-3,0,0,Math.sqrt(0.5),1,"rgba(255,0,0,0.5)");で、系psystemの場所(-3,0)に(最初は)置かれる。

 初速度は0にしている。その後の1は質量が1であることを指定し、最後で色をrgba(255,0,0,0.5)にした。

 最後の物体が大事で、物体と物体をつなぐ「コネクタ」である。

con=new Connector(psystem,M,m1,"rgba(0,0,0,0.5)");が新しいコネクタを作る(ConnectorはSpringというオブジェクトから作られている)。

 Connectorの第1の引数は例によって所属する系だが、第2,第3の引数は「そのコネクタが何と何をつないでいるか」を示す。今の場合はM,m1なので、Mとm1が繋がれているのである。

 最後の引数は例によって色である。

課題

  1. 【ちょっと難しい】物体を2個にして、二重振り子にしてみよう。
  2. 【ちょっと難しい】物体を2個と固定点で、三角形の振り子を作ってみよう。
  3. その他思いついたことはなんでもやってみて。

 たくさんの振り子を一斉に振らせてみたのが、振り子たくさん

 二つの物体をつないで、振り子ではなく自由に動くようにしたのが亜鈴

目次に戻る