放物運動

下向きに質量に比例する力を加えました。
放物運動を描きます。
サンプルのソース
サンプルのドキュメント

下のソースの赤い文字のところがこのアプレットに固有の部分です。
import java.awt.*;
import java.io.*;
import java.lang.*;

/**
 * PhObject のサンプルアプレット
 *   放物運動
 */
public class Test4 extends java.applet.Applet {
  /** シミュレーション用の物理空間  **/
  MyField4 workField = new MyField4();
  public void init(){
    setLayout(new BorderLayout());
    add("Center",workField);
    workField.set_sleepTime(50); // 描画の時間間隔を50/1000sに設定。
    workField.init(1);            // 初期設定(物体の個数は1個)
  }
  
  public void start(){
    workField.start();           // アニメーション開始
  }
}

/** PhFieldを継承したMyField4 Class **/
class MyField4 extends PhField{
  /** 位置や速度の初期設定  **/
  public void init(int k){
    makeObject(k);
    dt = 0.1;                                          // 時間間隔を設定

    obj[0].s.set( 0.0, 0.0);                           // 物体の初期位置設定
    obj[0].v.set( 20.0, 60.0 / 180.0 * Math.PI);       // 初速度設定
    obj[0].set_m( 10);                                 // 物体の質量設定
    set_force();                                       // 力を計算
    obj[0].a.set_acc( obj[0].get_f(), obj[0].get_m()); // 加速度を計算
    obj[0].v.add_vel( obj[0].get_a(), - dt / 2);       // 初速度をdt/2ずらす
  }
 
  /** 物体にはたらく力を計算  **/
  public void set_force() {
    obj[0].f.set( obj[0].get_m() * 9.8, -90.0 / 180.0 * Math.PI);
      // 物体の個数分だけ記述
  }
}