| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.awt.geom.Area
public class Area
Area オブジェクトは、2 次元空間の閉じた領域について解像度に依存しない記述を格納および操作します。Area オブジェクトは変換可能で、ほかの Area オブジェクトとの結合時に各種の CAG (構成領域幾何学的図形) 演算を実行できます。CAG 演算には領域の和、差、積、および排他的論理和などがあります。各種の演算の例については、リンク先のメソッドドキュメントを参照してください。
 
Area クラスは、Shape インタフェースを実装し、当たり判定機能およびパス繰り返し機能のすべてを完全にサポートします。ただし以下のような点で、Area は一般化されたパスよりも特化されています。
 
Area オブジェクトは、構築中に暗黙的に閉じられて、そのパスが Graphics2D.fill メソッドで塗りつぶされたかのようになります。
Area の輪郭線を記述するパスの幾何学的図形は、同じ 2 次元の閉じた領域を記述するという点だけが構築元のパスに似ています。ただし、記述するために使用するパスセグメントの種類と順序は、まったく異なることがあります。
 Area の使用時に必ずしも明白ではない点は次のとおりです。
 Shape から Area を作成すると、Area オブジェクトの輪郭線は閉じられます。
Shape から Area を作成すると、空の Area が生成されます。たとえばよくある例として、ラインが囲んでいる領域がないために、このラインから Area を生成すると空になります。空の Area は、その PathIterator オブジェクト内の幾何学的図形を繰り返し処理しません。
Shape は、元のパスで交差していない部分を囲むような 2 つ以上のサブパスに分割されることがあります。
Area は、元の輪郭線が単純で明確であっても、多くのパスセグメントを使用して同じ幾何学的図形を記述することがあります。Area クラスがパス上で実行する必要がある分析は、人が考える「単純で明確」という概念と同じ概念を反映しているとはかぎりません。
 
| コンストラクタの概要 | |
|---|---|
| Area()空の領域を作成するデフォルトコンストラクタです。 | |
| Area(Shape s)Areaクラスは、指定されたShapeオブジェクトから領域幾何学的図形を作成します。 | |
| メソッドの概要 | |
|---|---|
|  void | add(Area rhs)指定された Areaの形状をこのAreaの形状に追加します。 | 
|  Object | clone()この Areaオブジェクトとまったく同じコピーを返します。 | 
|  boolean | contains(double x,
         double y)指定された座標が Shapeの境界内にあるかどうかを判定します。 | 
|  boolean | contains(double x,
         double y,
         double w,
         double h)Shapeの内部領域が、指定された矩形領域を完全に包含するかどうかを判定します。 | 
|  boolean | contains(Point2D p)指定された Point2DがShapeの境界内にあるかどうかを判定します。 | 
|  boolean | contains(Rectangle2D r)Shapeの内部が、指定されたRectangle2Dを完全に内包するかどうかを判定します。 | 
|  Area | createTransformedArea(AffineTransform t)指定された AffineTransformによって変換されたこのAreaと同じ幾何学的図形を含む、新しいAreaオブジェクトを作成します。 | 
|  boolean | equals(Area other)2 つの Areaオブジェクトの幾何学的図形が等しいかどうかを判定します。 | 
|  void | exclusiveOr(Area rhs)この Areaの形状を、現在の形状と指定されたAreaの形状の結合領域からその共通部分を差し引いた領域に設定します。 | 
|  Rectangle | getBounds()この Areaを完全に囲むバウンディングRectangleを返します。 | 
|  Rectangle2D | getBounds2D()この Areaを完全に囲む高精度バウンディングRectangle2Dを返します。 | 
|  PathIterator | getPathIterator(AffineTransform at)この Areaオブジェクトの輪郭に使うPathIteratorを作成します。 | 
|  PathIterator | getPathIterator(AffineTransform at,
                double flatness)この Areaオブジェクトの平坦化した輪郭のためのPathIteratorを作成します。 | 
|  void | intersect(Area rhs)この Areaの形状を、現在の形状と指定されたAreaの形状の共通部分に設定します。 | 
|  boolean | intersects(double x,
           double y,
           double w,
           double h)Shapeの内部領域が、指定された矩形領域の内部領域と交差するかどうかを判定します。 | 
|  boolean | intersects(Rectangle2D r)Shapeの内部が、指定されたRectangle2Dの内部と交差するかどうかを判定します。 | 
|  boolean | isEmpty()この Areaオブジェクトが領域を囲むかどうかを判定します。 | 
|  boolean | isPolygonal()この Areaが完全に、辺が直線の多角形幾何学的図形から構成されているかどうかを判定します。 | 
|  boolean | isRectangular()この Areaの形状が矩形かどうかを判定します。 | 
|  boolean | isSingular()この Areaが単一の閉鎖サブパスから構成されているかどうかを判定します。 | 
|  void | reset()この Areaから幾何学的図形をすべて削除し、空の領域に戻します。 | 
|  void | subtract(Area rhs)指定された Areaの形状をこのAreaの形状から取り去ります。 | 
|  void | transform(AffineTransform t)この Areaの幾何学的図形を、指定されたAffineTransformを使って変換します。 | 
| クラス java.lang.Object から継承されたメソッド | 
|---|
| equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| コンストラクタの詳細 | 
|---|
public Area()
public Area(Shape s)
Area クラスは、指定された Shape オブジェクトから領域幾何学的図形を作成します。Shape が閉じていなければ、幾何学的図形は明示的に閉じられます。Shape の幾何学的図形で指定されている塗りつぶし規則 (偶奇または屈曲) を使うと、結果として生成される閉じた領域を指定できます。
s - 領域の作成側の Shape
NullPointerException - s が null の場合| メソッドの詳細 | 
|---|
public void add(Area rhs)
Area の形状をこの Area の形状に追加します。この Area で得られる形状には、両方の形状の結合部分、またはこの Area か指定された Area のどちらかに収まっているすべての領域が含まれます。
 
     // Example:
     Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]);
     Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]);
     a1.add(a2);
        a1(before)     +         a2         =     a1(after)
     ################     ################     ################
     ##############         ##############     ################
     ############             ############     ################
     ##########                 ##########     ################
     ########                     ########     ################
     ######                         ######     ######    ######
     ####                             ####     ####        ####
     ##                                 ##     ##            ##
 
rhs - 現在の形状に追加される Area
NullPointerException - rhs が null の場合public void subtract(Area rhs)
Area の形状をこの Area の形状から取り去ります。この Area で得られる形状には、この Area のみに収まっていて、指定された Area には収まっていない領域が含まれます。
 
     // Example:
     Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]);
     Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]);
     a1.subtract(a2);
        a1(before)     -         a2         =     a1(after)
     ################     ################
     ##############         ##############     ##
     ############             ############     ####
     ##########                 ##########     ######
     ########                     ########     ########
     ######                         ######     ######
     ####                             ####     ####
     ##                                 ##     ##
 
rhs - 現在の形状から差し引かれる Area
NullPointerException - rhs が null の場合public void intersect(Area rhs)
Area の形状を、現在の形状と指定された Area の形状の共通部分に設定します。この Area で得られる形状には、この Area と指定された Area の両方に収まっている領域だけが含まれます。
 
     // Example:
     Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]);
     Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]);
     a1.intersect(a2);
      a1(before)   intersect     a2         =     a1(after)
     ################     ################     ################
     ##############         ##############       ############
     ############             ############         ########
     ##########                 ##########           ####
     ########                     ########
     ######                         ######
     ####                             ####
     ##                                 ##
 
rhs - この Area と交差させる Area
NullPointerException - rhs が null の場合public void exclusiveOr(Area rhs)
Area の形状を、現在の形状と指定された Area の形状の結合領域からその共通部分を差し引いた領域に設定します。この Area で得られる形状には、この Area または指定された Area のどちらか一方だけに収まっている領域が含まれます。両方に収まっている領域は含まれません。
 
     // Example:
     Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]);
     Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]);
     a1.exclusiveOr(a2);
        a1(before)    xor        a2         =     a1(after)
     ################     ################
     ##############         ##############     ##            ##
     ############             ############     ####        ####
     ##########                 ##########     ######    ######
     ########                     ########     ################
     ######                         ######     ######    ######
     ####                             ####     ####        ####
     ##                                 ##     ##            ##
 
rhs - この Area との排他的論理和を求める Area
NullPointerException - rhs が null の場合public void reset()
Area から幾何学的図形をすべて削除し、空の領域に戻します。
public boolean isEmpty()
Area オブジェクトが領域を囲むかどうかを判定します。
Area オブジェクトが空の領域を表す場合は true、そうでない場合は falsepublic boolean isPolygonal()
Area が完全に、辺が直線の多角形幾何学的図形から構成されているかどうかを判定します。
Area の幾何学的図形が完全に線セグメントから構成されている場合は true、そうでない場合は falsepublic boolean isRectangular()
Area の形状が矩形かどうかを判定します。
Area の幾何学的図形の形状が矩形の場合は true、そうでない場合は falsepublic boolean isSingular()
Area が単一の閉鎖サブパスから構成されているかどうかを判定します。このメソッドは、パスがサブパスを 0 または 1 つ含む場合は true、パスが 2 つ以上のサブパスを含む場合は false を返します。サブパスは、パスに現れる SEG_MOVETO セグメントの数によって数えられます。
Area が 1 つの基本幾何学的図形から構成されている場合は true、そうでない場合は falsepublic Rectangle2D getBounds2D()
Area を完全に囲む高精度バウンディング Rectangle2D を返します。
 Area クラスはその Shape にできるだけぴったりしたバウンディングボックスを返そうとします。バウンディングボックスは Shape の輪郭のカーブの制御点を含むようにはパディングされず、輪郭自体の実際の幾何学的図形にぴったりの大きさになります。
Shape 内の getBounds2DArea のバウンディング Rectangle2DShape.getBounds()public Rectangle getBounds()
Area を完全に囲むバウンディング Rectangle を返します。
 Area クラスはその Shape にできるだけぴったりしたバウンディングボックスを返そうとします。バウンディングボックスは Shape の輪郭のカーブの制御点を含むようにはパディングされず、輪郭自体の実際の幾何学的図形にぴったりの大きさになります。返されたオブジェクトは整数でバウンディングボックスを表すので、バウンディングボックスは、Shape の幾何学的図形を取り囲むもっとも近い整数座標というレベルでの一致になります。
Shape 内の getBoundsArea のバウンディング RectangleShape.getBounds2D()public Object clone()
Area オブジェクトとまったく同じコピーを返します。
Object 内の cloneCloneablepublic boolean equals(Area other)
Area オブジェクトの幾何学的図形が等しいかどうかを判定します。引数が null の場合、このメソッドは false を返します。
other - この Area と比較される Area
true、それ以外の場合は falsepublic void transform(AffineTransform t)
Area の幾何学的図形を、指定された AffineTransform を使って変換します。幾何学的図形が適切に変換され、これにより、このオブジェクトによって定義されている閉じた領域が永久的に変更されます。
t - 領域を変換するのに使う変換
NullPointerException - t が null の場合public Area createTransformedArea(AffineTransform t)
AffineTransform によって変換されたこの Area と同じ幾何学的図形を含む、新しい Area オブジェクトを作成します。この Area オブジェクトは変化しません。
t - 新しい Area の変換に使う、指定された AffineTransform
Area オブジェクト
NullPointerException - t が null の場合
public boolean contains(double x,
                        double y)
Shape の境界内にあるかどうかを判定します。
Shape 内の containsx - 判定対象の指定された X 座標y - 判定対象の指定された Y 座標
Shape の境界内にある場合は true、そうでない場合は falsepublic boolean contains(Point2D p)
Point2D が Shape の境界内にあるかどうかを判定します。
Shape 内の containsp - 判定対象の、指定された Point2D
Point2D が Shape の境界内にある場合は true、そうでない場合は false
public boolean contains(double x,
                        double y,
                        double w,
                        double h)
Shape の内部領域が、指定された矩形領域を完全に包含するかどうかを判定します。矩形領域全体が Shape に包含されていると見なされるためには、矩形領域内にあるすべての座標が Shape 内に位置している必要があります。
 
Shape.contains() メソッドを使用すると、次のような場合に Shape 実装は false を返すことがあります。
 
intersect メソッドが true を返し、
 Shape が矩形領域を完全に包含するかどうかを判別する計算の負荷がかなり大きい
 Shape によっては、Shape が矩形領域を包含する場合でもこのメソッドが false を返すことがあります。Area クラスは、ほとんどの Shape オブジェクトのより精密な幾何学的計算を行うため、より正確な結果が必要な場合に使用できます。
Shape 内の containsx - 指定された矩形領域の左上隅の X 座標y - 指定された矩形領域の左上隅の Y 座標w - 指定された矩形領域の幅h - 指定された矩形領域の高さ
Shape の内部領域が、指定された矩形領域を完全に包含する場合は true、そうでない場合は false。また、Shape が矩形領域を包含し、intersects メソッドが true を返し、負荷が大き過ぎて包含の計算が行えない場合も falseArea, 
Shape.intersects(double, double, double, double)public boolean contains(Rectangle2D r)
Shape の内部が、指定された Rectangle2D を完全に内包するかどうかを判定します。Shape.contains() メソッドを使用すると、次のような場合に Shape 実装は false を返すことがあります。
 intersect メソッドが true を返し、
 Shape が Rectangle2D を完全に包含するかどうかを判断する計算の負荷が大きい
 Shape によっては、Shape が Rectangle2D を包含する場合でもこのメソッドが false を返すことがあります。Area クラスは、ほとんどの Shape オブジェクトのより精密な幾何学的計算を行うため、より正確な結果が必要な場合に使用できます。
Shape 内の containsr - 指定された Rectangle2D
Shape の内部領域が、Rectangle2D を完全に包含する場合は true、そうでない場合は false。また、Shape が Rectangle2D を包含し、intersects メソッドが true を返し、負荷が大き過ぎて包含の計算が行えない場合も falseShape.contains(double, double, double, double)
public boolean intersects(double x,
                          double y,
                          double w,
                          double h)
Shape の内部領域が、指定された矩形領域の内部領域と交差するかどうかを判定します。Shape の内部領域と指定された矩形領域の両方に含まれる点がある場合、矩形領域は Shape と交差していると見なされます。
 
Shape.intersects() メソッドを使用すると、次のような場合に Shape 実装は true を返すことがあります。
 
Shape が重なり合っている可能性がかなり高いが、
 Shape によっては、矩形領域が Shape と交差しない場合でもこのメソッドが true を返すことがあります。Area クラスは、ほとんどの Shape オブジェクトの幾何学的な共通部分のより精密な計算を行うため、より正確な結果が必要な場合に使用できます。
Shape 内の intersectsx - 指定された矩形領域の左上隅の X 座標y - 指定された矩形領域の左上隅の Y 座標w - 指定された矩形領域の幅h - 指定された矩形領域の高さ
Shape の内部領域と矩形領域の内部領域が交差する場合、または交差する可能性が高いが、負荷が大き過ぎて共通部分の計算を行えない場合は true、そうでない場合は falseAreapublic boolean intersects(Rectangle2D r)
Shape の内部が、指定された Rectangle2D の内部と交差するかどうかを判定します。Shape.intersects() メソッドを使用すると、次のような場合に Shape 実装は true を返すことがあります。
 Rectangle2D と Shape が交差する可能性が高いが、
 Shape によっては、Rectangle2D が Shape と交差しない場合でもこのメソッドが true を返すことがあります。Area クラスは、ほとんどの Shape オブジェクトの幾何学的な共通部分のより精密な計算を行うため、より正確な結果が必要な場合に使用できます。
Shape 内の intersectsr - 指定された Rectangle2D
Shape の内部領域と指定された Rectangle2D の内部領域が交差する場合、または交差する可能性が高いが、負荷が大き過ぎて共通部分の計算を行えない場合は true、そうでない場合は falseShape.intersects(double, double, double, double)public PathIterator getPathIterator(AffineTransform at)
Area オブジェクトの輪郭に使う PathIterator を作成します。この Area オブジェクトは変化しません。
Shape 内の getPathIteratorat - 繰り返し処理で返されるときに座標に適用されるオプションの AffineTransform、変換されていない座標が必要な場合は null
Area の輪郭の幾何学的図形を一度に 1 セグメントずつ返す PathIterator オブジェクト
public PathIterator getPathIterator(AffineTransform at,
                                    double flatness)
Area オブジェクトの平坦化した輪郭のための PathIterator を作成します。SEG_MOVETO、SEG_LINETO、SEG_CLOSE の 3 種類の点によって表現される曲線状でないパスセグメントだけが、反復子によって返されます。この Area オブジェクトは変化しません。
Shape 内の getPathIteratorat - 繰り返し処理で返されるときに座標に適用されるオプションの AffineTransform、変換されていない座標が必要な場合は nullflatness - 分割された曲線が終点を結ぶ直線によって置換される前に、指定された曲線の制御点が共線から外れることのできる最大距離
Area の輪郭の幾何学的図形を一度に 1 セグメントずつ返す PathIterator オブジェクト| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。