Line2D.DoubleクラスとLine2D.Floatクラス

広告

Line2Dクラスは直線を表すクラスです。

クラス図は次のようになっています。

  • java.lang.Object
  • java.awt.geom.Line2D
  • public abstract class Line2D extends Object implements Shape, Cloneable

Line2Dクラスはabstractクラスとなっていますので実際に使用する場合はサブクラスであるLine2D.DoubleクラスとLine2D.Floatクラスを利用します。

Line2D.Doubleクラス

Line2D.Doubleクラスは始点座標と終点座標の値としてdouble型の値を使用するクラスです。

クラス図は次のようになっています。

  • java.lang.Object
  • java.awt.geom.Line2D
  • java.awt.geom.Line2D.Double
  • public static class Line2D.Double extends Line2D implements Serializable

コンストラクタは次の3つが用意されています。

コンストラクタ
Line2D.Double()
座標 (0, 0) -> (0, 0) で Line を構築および初期化します。
Line2D.Double(double x1, double y1, double x2, double y2)
指定された座標から Line2D を構築および初期化します。
Line2D.Double(Point2D p1, Point2D p2)
指定された Point2D オブジェクトから Line2D を構築および初期化します。

1番目のコンストラクタは直線の始点として座標を(0, 0)、終点としての座標(0, 0)を指定した場合と同じです。それでは2番目のコンストラクタを確認してみます。

指定された座標から Line2D を構築および初期化します。

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

1番目と2番目の引数で始点の座標(x1, y1)を指定します。3番目と4番目の引数で終点の座標(x2, y2)を指定します。

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

Line2D.Double line = new Line2D.Double(5.0d, 5.0d, 10.0d, 8.0d);

なお3番目のコンストラクタは始点及び終点の座標をPoint2Dクラスのオブジェクトとして指定した場合で基本的には2番目のコンストラクタと同じです。Point2Dクラスについては『Point2Dクラス』を参照して下さい。

Line2D.Floatクラス

Line2D.Floatクラスは始点座標と終点座標の値としてfloat型の値を使用するクラスです。

クラス図は次のようになっています。

  • java.lang.Object
  • java.awt.geom.Line2D
  • java.awt.geom.Line2D.Float
  • public static class Line2D.Float extends Line2D implements Serializable

コンストラクタは次の3つが用意されています。

コンストラクタ
Line2D.Float()
座標 (0, 0) -> (0, 0) で Line を構築および初期化します。
Line2D.Float(float x1, float y1, float x2, float y2)
指定された座標から Line2D を構築および初期化します。
Line2D.Float(Point2D p1, Point2D p2)
指定された Point2D オブジェクトから Line2D を構築および初期化します。

1番目のコンストラクタは直線の始点として座標を(0, 0)、終点としての座標(0, 0)を指定した場合と同じです。それでは2番目のコンストラクタを確認してみます。

指定された座標から Line を構築および初期化します。 

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

1番目と2番目の引数で始点の座標(x1, y1)を指定します。3番目と4番目の引数で終点の座標(x2, y2)を指定します。

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

Line2D.Float line = new Line2D.Float(5.0f, 5.0f, 10.0f, 8.0f);

Line2D.DoubleクラスとLine2D.Floatクラスは内部に保持する値がdouble型かfloat型かの違いがあるだけですので次のページ以降では基本的にLine2D.Doubleクラスについて内容を確認していきます。

( Written by Tatsuo Ikura )