|
|
Point2D クラスの使い方 |
H.Kamifuji . |
Point2D クラスは、座標を表す2つの値を保持するためのクラスです。 ここでは、Point2D クラスについて、事例にて説明します。 現在(2021/08)では、JDK-16.0.2 にアップされています。一部、上位互換について、見直しを行っていきます。 現在(2021/11)では、JDK-17.0.1 にアップされています。一部、上位互換について、見直しを行っていきます。 現在(2023/04)では、JDK-20.0.1 にアップされています。一部、上位互換について、見直しを行っていきます。 現在(2024/10)では、JDK-23 にアップされています。一部、上位互換について、見直しを行っていきます。 |
|
Point2Dクラスは座標を表すx座標とy座標の2つの値を保持する為に利用されるクラスです。 クラス図は次のようになっています。 java.lang.Object ⇒ java.awt.geom.Point2D public abstract class Point2D extends Object implements CloneablePoint2Dクラスはabstractクラスとなっていますので実際に使用する場合はサブクラスであるPoint2D.DoubleクラスとPoint2D.Floatクラスを利用します。 Point2D.DoubleクラスPoint2D.Doubleクラスは座標の値としてdouble型の値を使用するクラスです。クラス図は次のようになっています。 java.lang.Object ⇒ java.awt.geom.Point2D ⇒ java.awt.geom.Point2D.Double public static class Point2D.Double extends Point2D implements Serializableコンストラクタは次の2つが用意されています。
1番目のコンストラクタは座標の初期値として(0, 0)を指定した場合と同じです。それでは2番目のコンストラクタを確認してみます。 Point2D.Double public Point2D.Double(double x, double y)指定された座標で Point2D を構築および初期化します。 パラメータ: x - 新しく構築される Point2D の X 座標 y - 新しく構築される Point2D の Y 座標 1番目の引数でx座標を2番目の引数でy座標をそれぞれdouble型の値で指定します。 具体的には次のように記述します。 Point2D.Double point = new Point2D.Double(10.0d, 10.0d); Point2D.FloatクラスPoint2D.Floatクラスは座標の値としてfloat型の値を使用するクラスです。クラス図は次のようになっています。 java.lang.Object ⇒ java.awt.geom.Point2D ⇒ java.awt.geom.Point2D.Float public static class Point2D.Float extends Point2D implements Serializableコンストラクタは次の2つが用意されています。
1番目のコンストラクタは座標の初期値として(0, 0)を指定した場合と同じです。それでは2番目のコンストラクタを確認してみます。 Point2D.Float public Point2D.Float(float x, float y)指定された座標で Point2D を構築および初期化します。 パラメータ: x - 新しく構築される Point2D の X 座標 y - 新しく構築される Point2D の Y 座標 1番目の引数でx座標を2番目の引数でy座標をそれぞれfloat型の値で指定します。 具体的には次のように記述します。 Point2D.Float point = new Point2D.Float(10.0f, 10.0f);Point2D.DoubleクラスとPoint2D.Floatクラスは内部に保持する2つの値がdouble型かfloat型かの違いがあるだけですので次のページ以降では基本的にPoint2D.Doubleクラスについて内容を確認していきます。 |
Point2D.Doubleクラスで座標の値を設定するにはコンストラクタで指定する以外にオブジェクトを作成した後でメソッドを使って設定することが出来ます。Point2D.Doubleクラスで用意されている「setLocation」メソッドを使います。setLocation public void setLocation(double x, double y)この Point2D の位置を、指定された double 型の座標に設定します。 パラメータ: x - この Point2D の新しい X 座標 y - この Point2D の新しい Y 座標 1番目の引数でx座標を2番目の引数でy座標をそれぞれdouble型の値で指定します。 具体的には次のように記述します。 Point2D.Double point = new Point2D.Double(); point.setLocation(10.0d, 10.0d); サンプルプログラム下記のサンプルを実行してみよう。/** * 座標を設定する */ import java.awt.geom.Point2D; class Point2DTest1{ public static void main(String args[]){ Point2D.Double point = new Point2D.Double(); point.setLocation(10.0d, 10.0d); System.out.println("(x, y)=(" + point.x + "," + point.y + ")"); } }上記をコンパイルした後で実行すると次のように表示されます。 [xxxxxx@ddddddd Point2DTest]$ java Point2DTest1 (x, y)=(10.0,10.0) |
Point2D.Doubleクラスで座標の値を取得するにはメソッドを使って取得する方法とフィールドの値を参照する方法があります。まずはメソッドで取得する方法を確認します。Point2D.Doubleクラスで用意されている「getX」メソッドと「getY」メソッドを使います。 getXメソッド: getX public double getX()この Point2D の X 座標を double 精度で返します。 戻り値: この Point2D の X 座標 getYメソッド: getY public double getY()この Point2D の Y 座標を double 精度で返します。 戻り値: この Point2D の Y 座標 「getX」メソッドは戻り値としてオブジェクトに保存されているX座標を表すdouble型の値を取得できます。「getY」メソッドは戻り値としてオブジェクトに保存されているY座標を表すdouble型の値を取得できます。 具体的には次のように記述します。 Point2D.Double point = new Point2D.Double(10.0d, 10.0d); double x = point.getX(); double y = point.getY(); フィールドを参照するPoint2D.Doubleではフィールドとして「x」と「y」と言う2つのdouble型の値を保持するフィールドを持っておりオブジェクトから直接参照することが出来ます。具体的には次のように記述します。 Point2D.Double point = new Point2D.Double(10.0d, 10.0d); double x = point.x; double y = point.y; サンプルプログラム下記のサンプルを実行してみよう。/** * 座標を取得する */ import java.awt.geom.Point2D; class Point2DTest2{ public static void main(String args[]){ Point2D.Double point = new Point2D.Double(10.0d, 8.0d); double x = point.getX(); double y = point.getY(); System.out.println("(x, y)=(" + x + "," + y + ")"); } }上記をコンパイルした後で実行すると次のように表示されます。 [xxxxxx@ddddddd Point2DTest]$ java Point2DTest1 (x, y)=(10.0,8.0) |
|