始点座標と終点座標を取得する

広告

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

始点座標を取得するにはLine2D.Doubleクラスで用意されている「getX1」メソッドと「getY1」メソッドを使います。また終点座標を取得するにはLine2D.Doubleクラスで用意されている「getX2」メソッドと「getY2」メソッドを使います。

getX1メソッド:

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

戻り値:
  この Line2D オブジェクトの始点の X 座標

getY1メソッド:

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

戻り値:
  この Line2D オブジェクトの始点の Y 座標

getX2メソッド:

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

戻り値:
  この Line2D オブジェクトの終点の X 座標

getY2メソッド:

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

戻り値:
  この Line2D オブジェクトの終点の Y 座標

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

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

Line2D.Double line = new Line2D.Double(10.0d, 10.0d, 12.0d, 8.0d);
double x1 = line.getX1();
double y1 = line.getY1();
double x2 = line.getX2();
double y2 = line.getY2();

また始点座標及び終点座標をPoint2Dクラスのオブジェクトとして取得する事も出来ます。Line2D.Doubleクラスで用意されている「getP1」メソッドと「getP2」メソッドを使います。

getP1メソッド:

この Line2D の始点を表す Point2D を返します。 

戻り値:
  この Line2D の始点を表す Point2D

getP2メソッド:

この Line2D の終点を表す Point2D を返します。 

戻り値:
  この Line2D の終点を表す Point2D

「getP1」メソッドは戻り値として始点座標を表すPoint2Dクラスのオブジェクトを取得できます。「getP2」メソッドは戻り値として終点座標を表すPoint2Dクラスのオブジェクトを取得できます。

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

Line2D.Double line = new Line2D.Double(10.0d, 10.0d, 12.0d, 8.0d);
Point2D.Double p1 = (Point2D.Double)line.getP1();
Point2D.Double p2 = (Point2D.Double)line.getP2();

※Point2Dクラスについては『Point2Dクラス』を参照して下さい。

フィールドを参照する

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

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

Line2D.Double line = new Line2D.Double(10.0d, 10.0d, 12.0d, 8.0d);
double x1 = line.x1;
double y1 = line.y1;
double x2 = line.x2;
double y2 = line.y2;

サンプルプログラム

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

Line2DTest2.java

import java.awt.geom.Line2D;

class Line2DTest2{
  public static void main(String args[]){
    Line2D.Double line = new Line2D.Double(10.0d, 10.0d, 20.0d, 15.0d);

    double x1 = line.getX1();
    double y1 = line.getY1();
    double x2 = line.getX2();
    double y2 = line.getY2();

    System.out.println("始点(x, y)=(" + x1 + "," + y1 + ")");
    System.out.println("終点(x, y)=(" + x2 + "," + y2 + ")");
  }
}

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

始点座標と終点座標を取得する

( Written by Tatsuo Ikura )