JDK1.2 から曲線を描くためのクラスが提供されています。
ここでは java.awt.geom.CubicCurve2D を使ってみましょう。
ソースの基本部分は次のようになります。
/** 描画メソッド */
public void paint( Graphics g ) {
Point2D.Float start, control1, control2, end;
:
:
CubicCurve2D.Float curve = new CubicCurve2D.Float(
start.x, start.y, control1.x, control1.y,
control2.x, control2.y, end.x, end.y );
((Graphics2D)g).draw( curve );
}
新しいクラスについて簡単に解説しておきましょう。
サンプルのソース( CubicCurve2DTest.java )
実行例の赤い小円と青い小円がコントロールのための点です。 このサンプルでは、 これらの点をマウスのドラッグ操作で移動できるようにしてみました。