メソッドで設定する

広告

QuadCurve2D.Doubleクラスで各設定値をコンストラクタで指定する以外にオブジェクトを作成した後でメソッドを使って設定することが出来ます。QuadCurve2D.Doubleクラスで用意されている「setCurve」メソッドを使います。

この曲線の終点と制御点の位置を、指定された double 座標に設定します。

パラメータ:
  x1 - 始点の X 座標
  y1 - 始点の Y 座標
  ctrlx - 制御点の X 座標
  ctrly - 制御点の Y 座標
  x2 - 終点の X 座標
  y2 - 終点の Y 座標

1番目と2番目の引数で始点座標を指定します。3番目と4番目の引数で制御点の座標を指定します。5番目と6番目の引数で終点座標を指定します。

具体的には次のように記述します。

QuadCurve2D.Double curve = new QuadCurve2D.Double();
curve.setCurve(20.0d, 20.0d, 20.0d, 160.0d, 150.0d, 100.0d);

サンプルプログラム

簡単なサンプルを一度試してみます。

QuadCurve2DTest1.java

import javax.swing.*;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.*;

public class QuadCurve2DTest1 extends JPanel{
  public static void main(String[] args){
    JFrame frame = new JFrame();

    QuadCurve2DTest1 app = new QuadCurve2DTest1();
    frame.getContentPane().add(app);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(10, 10, 300, 200);
    frame.setTitle("タイトル");
    frame.setVisible(true);
  }

  public void paintComponent(Graphics g){
    Graphics2D g2 = (Graphics2D)g;

    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, 
                        RenderingHints.VALUE_ANTIALIAS_ON);

    QuadCurve2D.Double curve = new QuadCurve2D.Double();
    curve.setCurve(60.0d, 20.0d, 40.0d, 140.0d, 220.0d, 120.0d);

    g2.draw(curve);

    double x1 = curve.x1;
    double y1 = curve.y1;
    double x2 = curve.x2;
    double y2 = curve.y2;
    double ctrlx = curve.ctrlx;
    double ctrly = curve.ctrly;

    g2.draw(new Ellipse2D.Double(x1 - 5.0d, y1 - 5.d, 10.d, 10.0d));
    g2.draw(new Ellipse2D.Double(x2 - 5.0d, y2 - 5.d, 10.d, 10.0d));
    g2.draw(new Ellipse2D.Double(ctrlx - 5.0d, ctrly - 5.d, 10.d, 10.0d));
  }
}

上記をコンパイルした後で実行すると次のように表示されます。

始点や終点を設定する

( Written by Tatsuo Ikura )