Arc2D.DoubleクラスとArc2D.Floatクラス

広告

Arc2Dクラスは円弧を表すクラスです。左上の座標及び幅と高さを指定して長方形の領域を作成し、その長方形の領域に内接する楕円を作成します。そして楕円の中で開始角度と使用角度を指定して円弧を作成します。

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

  • java.lang.Object
  • java.awt.geom.RectangularShape
  • java.awt.geom.Arc2D
  • public abstract class Arc2D extends RectangularShape

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

Arc2D.Doubleクラス

Arc2D.Doubleクラスは円弧を特定するための各値としてdouble型の値を使用するクラスです。

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

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

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

コンストラクタ
Arc2D.Double()
新しい OPEN の弧を構築し、位置 (0, 0)、サイズ (0, 0)、角の大きさ (start = 0, extent = 0) に初期化します。
Arc2D.Double(double x, double y, double w, double h, double start, double extent, int type)
新しい弧を構築し、指定された位置、サイズ、角の大きさ、および閉じ方の種類に初期化します。
Arc2D.Double(int type)
新しい弧を構築し、位置 (0, 0)、サイズ (0, 0)、角の大きさ (start = 0, extent = 0)、および指定された閉じ方の種類に初期化します。
Arc2D.Double(Rectangle2D ellipseBounds, double start, double extent, int type)
新しい弧を構築し、指定された位置、サイズ、角の大きさ、および閉じ方の種類に初期化します。

いくつかコンストラクタがありますが基本となる2番目のコンストラクタを確認してみます。

新しい弧を構築し、指定された位置、サイズ、角の大きさ、および閉じ方の種
類に初期化します。

パラメータ:
  x - 弧の表示枠矩形の 左上隅の X 座標
  y - 弧の表示枠矩形の 左上隅の Y 座標
  w - この弧が一部を構成する 楕円の幅
  h - この弧が一部を構成する 楕円の高さ
  start - 弧の始角 (度単位)
  extent - 弧の角の大きさ (度単位)
  type - 弧の閉じ方の種類 (Arc2D.OPEN、Arc2D.CHORD、または Arc2D.PIE)

1番目の引数でx座標を2番目の引数でy座標をそれぞれdouble型の値で指定します。この2つが長方形の領域の左上の座標となります。そして3番目の引数で幅を4番目の引数で高さをそれぞれdouble型の値で指定します。作成される楕円はこの長方形の領域に内接する楕円となります。5番目の引数で開始角度を6番目の引数で使用角度をそれぞれdouble型の値で指定します。

7番目の引数で円弧の閉じ方を表すint型の値を指定します。指定できる値は次の通りです。

種類
Arc2D.OPEN開いたままの円弧です
Arc2D.CHORD円弧の両端を直線で結びます
Arc2D.PIE円弧の両端と円の中心をそれぞれ結びます

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

Arc2D.Double arc
  = new Arc2D.Double(10.0d, 10.0d, 40.0d, 20.0d, 45.0d, 45.0d, Arc2D.PIE);

Arc2D.Floatクラス

Arc2D.Floatクラスは楕円を特定するための各値としてfloat型の値を使用するクラスです。

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

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

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

コンストラクタ
Arc2D.Float()
新しい OPEN の弧を構築し、位置 (0, 0)、サイズ (0, 0)、角の大きさ (start = 0, extent = 0) に初期化します。
Arc2D.Float(float x, float y, float w, float h, float start, float extent, int type)
新しい弧を構築し、指定された位置、サイズ、角の大きさ、および閉じ方の種類に初期化します。
Arc2D.Float(int type)
新しい弧を構築し、位置 (0, 0)、サイズ (0, 0)、角の大きさ (start = 0, extent = 0)、および指定された閉じ方の種類に初期化します。
Arc2D.Float(Rectangle2D ellipseBounds, float start, float extent, int type)
新しい弧を構築し、指定された位置、サイズ、角の大きさ、および閉じ方の種類に初期化します。

いくつかコンストラクタがありますが基本となる2番目のコンストラクタを確認してみます。

新しい弧を構築し、指定された位置、サイズ、角の大きさ、および閉じ方の種
類に初期化します。

パラメータ:
  x - 弧の表示枠矩形の 左上隅の X 座標
  y - 弧の表示枠矩形の 左上隅の Y 座標
  w - この弧が一部を構成する 楕円の幅
  h - この弧が一部を構成する 楕円の高さ
  start - 弧の始角 (度単位)
  extent - 弧の角の大きさ (度単位)
  type - 弧の閉じ方の種類 (Arc2D.OPEN、Arc2D.CHORD、または Arc2D.PIE)

1番目の引数でx座標を2番目の引数でy座標をそれぞれdouble型の値で指定します。この2つが長方形の領域の左上の座標となります。そして3番目の引数で幅を4番目の引数で高さをそれぞれdouble型の値で指定します。作成される楕円はこの長方形の領域に内接する楕円となります。5番目の引数で開始角度を6番目の引数で使用角度をそれぞれdouble型の値で指定します。

7番目の引数で円弧の閉じ方を表すint型の値を指定します。指定できる値はArc2D.Doubleと同じです。

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

Arc2D.Float arc
  = new Arc2D.Float(10.0f, 10.0f, 40.0f, 20.0f, 45.0f, 45.0f, Arc2D.PIE);

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

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)