S曲線
  1. S曲線
    S曲線は分割法で折れ線の角をとり、滑らかな曲線を作成します。

      
  2. 手法
    S曲線の原理については
    このページを参考にして下さい。

  3. マウスの利用
    マウスの位置を取得するには、次のようにMouseListenerとMouseMotionListenerのインターフェースを組み込みます。

     public class curve extends Applet implements MouseListener, MouseMotionListener {...}

    また、初期設定(init())で次の呼び出しをします。
     addMouseListener(this);

    前者では次の4種のメソッド
     public void mouseClicked(MouseEvent e){} //スイッチがクリックされた
     public void mouseEntered(MouseEvent e){ }
     public void mousePressed(MouseEvent e){ }//マウスのボタンが押された
     public void mouseReleased(MouseEvent e){ }
     public void mouseExited(MouseEvent e){ }
    後者では、次に2種のメソッドを組み込む必要があります。
     public void mouseMoved(MouseEvent e){}  //マウスの移動があった
     public void mouseDragged(MouseEvent e){}  //マウスのドラッグがあった
    不要な関数もこのまま定義だけ残してしておく必要があります。

    マウス位置の取得例を紹介します。
    mousePressed(MouseEvent e)メソッドを利用します。イベントeから、マウスの座標を取得できます。

    public void mousePressed(MouseEvent e)
    {
     label1.setText("pressed:"+e.getX()+":"+e.getY());
     vtx[numVtx][0]=e.getX();
     vtx[numVtx][1]=e.getY();
     numVtx++;
     repaint();
    }

    マウスの移動が起ると、mouseMoved(MouseEvent e) が呼び出されます。eからマウスの位置を取得することができます。
  4. 実行
    newボタンを押して、マウスで画面をクリックし。折れ線を作成します。curveボタンを押すと折れ線を滑らかにした曲線を表示します。closeボタンをチェックすると、閉じた曲線を作成します。
  5. ダウンロード
    このプロジェクトをダウンロードできます。
    次の行をクリックして、curve.exeファイルを適当なフォルダに保存します。
    ダウンロード開始
    このファイルは自己解凍型の圧縮ファイルです。このファイルを実行すると指定したフォルダに必要なファイルが生成されます。