設定値を取得する

広告

QuadCurve2D.Doubleクラスで始点や終点、そして制御点の値を取得するにはメソッドを使って取得する方法とフィールドの値を参照する方法があります。まずはメソッドで取得する方法を確認します。

まず始点座標を取得してみます。QuadCurve2D.Doubleクラスで用意されている「getX1」メソッドと「getY1」メソッドを使います。

getX1メソッド:

始点の X 座標を double 精度で返します。

戻り値:
  始点の X 座標

getY1メソッド:

始点の Y 座標を double 精度で返します。

戻り値:
  始点の Y 座標

「getX1」メソッドは戻り値としてオブジェクトに保存されている始点座標のX座標を表すdouble型の値を取得できます。「getY1」メソッドは戻り値としてオブジェクトに保存されている始点座標のY座標を表すdouble型の値を取得できます。

次に終点座標を取得してみます。QuadCurve2D.Doubleクラスで用意されている「getX2」メソッドと「getY2」メソッドを使います。

getX2メソッド:

終点の X 座標を double 精度で返します。

戻り値:
  終点の x 座標

getY2メソッド:

終点の Y 座標を double 精度で返します。

戻り値:
  終点の Y 座標

「getX2」メソッドは戻り値としてオブジェクトに保存されている終点座標のX座標を表すdouble型の値を取得できます。「getY2」メソッドは戻り値としてオブジェクトに保存されている終点座標のY座標を表すdouble型の値を取得できます。

最後に制御点の座標を取得してみます。QuadCurve2D.Doubleクラスで用意されている「getCtrlX」メソッドと「getCtrlY」メソッドを使います。

getCtrlXメソッド:

制御点の X 座標を double 精度で返します。

戻り値:
  制御点の X 座標

getCtrlYメソッド:

制御点の Y 座標を double 精度で返します。 

戻り値:
  制御点の Y 座標

「getCtrlX」メソッドは戻り値としてオブジェクトに保存されている制限点のX座標を表すdouble型の値を取得できます。「getCtrlY」メソッドは戻り値としてオブジェクトに保存されている制御点の座標のY座標を表すdouble型の値を取得できます。

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

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

double x1 = curve.getX1();
double y1 = curve.getY1();
double x2 = curve.getX2();
double y2 = curve.getY2();
double ctrlx = curve.getCtrlX();
double ctrly = curve.getCtrlY();

フィールドを参照する

QuadCurve2D.Doubleではフィールドとして「x1」「y1」「ctrlx」「ctrly」「x2」「y2」と言う6つのdouble型の値を保持するフィールドを持っておりオブジェクトから直接参照することが出来ます。

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

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

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

サンプルプログラム

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

QuadCurve2DTest2.java

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

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

    QuadCurve2DTest2 app = new QuadCurve2DTest2();
    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, 40.0d, 220.0d, 30.0d, 120.0d, 140.0d);

    g2.draw(curve);

    double x1 = curve.getX1();
    double y1 = curve.getY1();
    double x2 = curve.getX2();
    double y2 = curve.getY2();
    double ctrlx = curve.getCtrlX();
    double ctrly = curve.getCtrlY();

    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 )