java.lang.Object
java.awt.geom.Area
Areaオブジェクトは、2次元空間の閉じた領域について解像度に依存しない記述を格納および操作します。 Areaオブジェクトは変換可能であり、ほかのAreaオブジェクトとの結合時に各種の構成領域ジオメトリ(CAG)演算を実行できます。 CAG演算には、領域のaddition、subtraction、intersection、およびexclusive orが含まれます。 各種の演算の例については、リンク先のメソッド・ドキュメントを参照してください。 
 
 Areaクラスは、Shapeインタフェースを実装し、その当たり判定およびパス反復機能のすべてを完全にサポートしますが、次のいくつかの点で、Areaは一般化されたパスより特化されています。
 
- 格納されるのは、閉じたパスとサブパスだけです。 閉じていないパスから構築されたAreaオブジェクトは、これらのパスがGraphics2D.fillメソッドで塗りつぶされたかのように、構築中に暗黙的に閉じられます。
- 格納される個別のサブパスの内部は、どれも空ではなく、オーバーラップしません。 パスは、構築中に個別のオーバーラップしないコンポーネントに分解されて、空のコンポーネントは廃棄されます。空ではなく、オーバーラップしないプロパティは、後続のすべてのCAG演算で維持されます。 異なるコンポーネントのサブパスの輪郭線は、閉じた領域がオーバーラップするように交差していないかぎり、接触することがあります。
- Areaの輪郭線を記述するパスの幾何学的図形は、同じ2次元の閉じた領域を記述しているという点でのみ構築元のパスに似ていますが、記述のためにまったく異なるタイプと順序のパス・セグメントを使用する可能性があります。
Areaの使用時に必ずしも明白ではない点は次のとおりです。
 - 閉じていない(開いている) ShapeからAreaを作成すると、Areaオブジェクトの輪郭線は閉じます。
- 囲んでいる領域がない(「閉じている」場合を含む) ShapeからAreaを作成すると、空のAreaが生成されます。 たとえばよくある例として、ラインが囲んでいる領域がないために、このラインからAreaを生成すると空になります。 空のAreaは、そのPathIteratorオブジェクト内の幾何学的図形を反復しません。
- 自己交差するShapeは、それぞれが元のパスのいずれかの交差していない部分を囲む2つ(以上の)サブパスに分割されることがあります。
- Areaは、元の輪郭線が単純で明確であっても、多くのパス・セグメントを使用して同じ幾何学的図形を記述することがあります。- Areaクラスがパス上で実行する必要がある分析は、人が考える「単純で明確」という概念と同じ概念を反映しているとはかぎりません。
- 導入されたバージョン:
- 1.2
- 
コンストラクタのサマリーコンストラクタ
- 
メソッドのサマリー修飾子と型メソッド説明void指定されたAreaの形状をこのAreaの形状に追加します。clone()このAreaオブジェクトとまったく同じコピーを返します。booleancontains(double x, double y)指定された座標が、内側の定義によって記述されたShapeの境界の内側にあるかどうかをテストします。booleancontains(double x, double y, double w, double h)Shapeの内部に、指定された矩形領域が完全に含まれるかどうかをテストします。booleanbooleancontains(Rectangle2D r)Shapeの内部に、指定されたRectangle2Dが完全に含まれるかどうかをテストします。指定されたAffineTransformによって変換されたこのAreaと同じ幾何学的図形を含む、新しいAreaオブジェクトを作成します。boolean2つのAreaオブジェクトの幾何学的図形が等しいかどうかを判定します。voidexclusiveOr(Area rhs)このAreaの形状を、現在の形状と指定されたAreaの形状の結合領域からその共通部分を差し引いた領域に設定します。このAreaを完全に囲むバウンディングRectangleを返します。このAreaを完全に囲む高精度バウンディングRectangle2Dを返します。このAreaオブジェクトの輪郭のPathIteratorを作成します。getPathIterator(AffineTransform at, double flatness)このAreaオブジェクトの平坦化した輪郭のPathIteratorを作成します。voidこのAreaの形状を、現在の形状と指定されたAreaの形状の共通部分に設定します。booleanintersects(double x, double y, double w, double h)Shapeの内部が指定された矩形領域の内部と交差しているかどうかをテストします。booleanShapeの内部が指定されたRectangle2Dの内部と交差しているかどうかをテストします。booleanisEmpty()このAreaオブジェクトが領域を囲むかどうかを判定します。booleanこのAreaが完全に、辺が直線の多角形幾何学的図形から構成されているかどうかを判定します。booleanこのAreaの形状が矩形かどうかを判定します。booleanこのAreaが単一の閉じられたサブパスから構成されているかどうかを判定します。voidreset()このAreaから幾何学的図形をすべて削除し、空の領域に戻します。void指定されたAreaの形状をこのAreaの形状から取り去ります。void指定されたAffineTransformを使用して、このAreaの幾何学的図形を変換します。
- 
コンストラクタの詳細- 
Areapublic Area()空の領域を作成するデフォルト・コンストラクタです。- 導入されたバージョン:
- 1.2
 
- 
Areapublic Area(Shape s)Areaクラスは、指定されたShapeオブジェクトから領域幾何学的図形を作成します。Shapeがまだ閉じられていない場合、幾何学的図形は明示的に閉じられます。Shapeの幾何学的図形で指定されている塗りつぶし規則(偶奇または屈曲)を使うと、結果として生成される閉じた領域を指定できます。- パラメータ:
- s- 領域の構築元の- Shape
- 例外:
- NullPointerException-- sがnullである場合
- 導入されたバージョン:
- 1.2
 
 
- 
- 
メソッドの詳細- 
addpublic void add(Area rhs)指定された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である場合
- 導入されたバージョン:
- 1.2
 
- 
subtractpublic 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である場合
- 導入されたバージョン:
- 1.2
 
- 
intersectpublic 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である場合
- 導入されたバージョン:
- 1.2
 
- 
exclusiveOrpublic 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である場合
- 導入されたバージョン:
- 1.2
 
- 
resetpublic void reset()このAreaから幾何学的図形をすべて削除し、空の領域に戻します。- 導入されたバージョン:
- 1.2
 
- 
isEmptypublic boolean isEmpty()このAreaオブジェクトが領域を囲むかどうかを判定します。- 戻り値:
- このAreaオブジェクトが空の領域を表す場合はtrue。それ以外の場合はfalse。
- 導入されたバージョン:
- 1.2
 
- 
isPolygonalpublic boolean isPolygonal()このAreaが完全に、辺が直線の多角形幾何学的図形から構成されているかどうかを判定します。- 戻り値:
- このAreaの幾何学的図形が完全にライン・セグメントから構成されている場合はtrue。それ以外の場合はfalse。
- 導入されたバージョン:
- 1.2
 
- 
isRectangularpublic boolean isRectangular()このAreaの形状が矩形かどうかを判定します。- 戻り値:
- このAreaの幾何学的図形の形状が矩形の場合はtrue。それ以外の場合はfalse。
- 導入されたバージョン:
- 1.2
 
- 
isSingularpublic boolean isSingular()このAreaが単一の閉じられたサブパスから構成されているかどうかを判定します。 このメソッドは、パスに含まれているサブパスが0または1つの場合はtrueを、パスに含まれているサブパスが2つ以上の場合はfalseを返します。 サブパスは、パスに現れるSEG_MOVETOセグメントの数によってカウントされます。- 戻り値:
- Areaが1つの基本幾何学的図形から構成されている場合は- true。それ以外の場合は- false。
- 導入されたバージョン:
- 1.2
 
- 
getBounds2Dpublic Rectangle2D getBounds2D()このAreaを完全に囲む高精度バウンディングRectangle2Dを返します。AreaクラスはそのShapeにできるだけぴったりしたバウンディング・ボックスを返そうとします。 バウンディング・ボックスはShapeの輪郭のカーブの制御点を含むようにはパディングされず、輪郭自体の実際の幾何学的図形にぴったりの大きさになります。 - 定義:
- getBounds2D、インタフェース:- Shape
- 戻り値:
- Areaのバウンディング- Rectangle2D。
- 導入されたバージョン:
- 1.2
- 関連項目:
- Shape.getBounds()
 
- 
getBoundspublic Rectangle getBounds()このAreaを完全に囲むバウンディングRectangleを返します。AreaクラスはそのShapeにできるだけぴったりしたバウンディング・ボックスを返そうとします。 バウンディング・ボックスはShapeの輪郭のカーブの制御点を含むようにはパディングされず、輪郭自体の実際の幾何学的図形にぴったりの大きさになります。 返されたオブジェクトは整数でバウンディング・ボックスを表すので、バウンディング・ボックスは、Shapeの幾何学的図形を取り囲むもっとも近い整数座標というレベルでの一致になります。 - 定義:
- getBounds、インタフェース:- Shape
- 戻り値:
- Areaのバウンディング- Rectangle。
- 導入されたバージョン:
- 1.2
- 関連項目:
- Shape.getBounds2D()
 
- 
clonepublic Object clone()このAreaオブジェクトとまったく同じコピーを返します。
- 
equalspublic boolean equals(Area other)2つのAreaオブジェクトの幾何学的図形が等しいかどうかを判定します。 引数がnullの場合、このメソッドはfalseを返します。- パラメータ:
- other- この- Areaと比較される- Area
- 戻り値:
- 2つの幾何学的図形が等しい場合はtrue。それ以外の場合はfalse。
- 導入されたバージョン:
- 1.2
 
- 
transformpublic void transform(AffineTransform t)指定されたAffineTransformを使用して、このAreaの幾何学的図形を変換します。 幾何学的図形が適切に変換され、これにより、このオブジェクトによって定義されている閉じた領域が永久的に変更されます。- パラメータ:
- t- 領域を変換するために使用される変換
- 例外:
- NullPointerException-- tがnullである場合
- 導入されたバージョン:
- 1.2
 
- 
createTransformedAreapublic Area createTransformedArea(AffineTransform t)指定されたAffineTransformによって変換されたこのAreaと同じ幾何学的図形を含む、新しいAreaオブジェクトを作成します。 このAreaオブジェクトは変化しません。- パラメータ:
- t- 新しい- Areaを変換するために使用される指定された- AffineTransform
- 戻り値:
- 変換された幾何学的図形を表す新しいAreaオブジェクト。
- 例外:
- NullPointerException-- tがnullである場合
- 導入されたバージョン:
- 1.2
 
- 
containspublic boolean contains(double x, double y)指定された座標が、内側の定義によって記述されたShapeの境界の内側にあるかどうかをテストします。
- 
containspublic boolean contains(Point2D p)
- 
containspublic boolean contains(double x, double y, double w, double h)Shapeの内部に、指定された矩形領域が完全に含まれるかどうかをテストします。 矩形領域全体がShape内に含まれていると見なされるには、矩形領域の内側にあるすべての座標がShape内にある必要があります。Shape.contains()メソッドを使用すると、次のような場合に、Shape実装は内部的にfalseを返すことができます。- 
 intersectメソッドがtrueを返し、かつ
- 
 Shapeに矩形領域が完全に含まれるかどうかを判定するための計算の負荷が非常に大きい。
 Shapesによっては、Shapeに矩形領域が含まれている場合でもこのメソッドがfalseを返すことがあります。Areaクラスは、ほとんどのShapeオブジェクトより正確な幾何学的計算を実行するため、より的確な答えが必要な場合に使用できます。- 定義:
- contains、インタフェース:- Shape
- パラメータ:
- x- 指定された矩形領域の左上隅のX座標
- y- 指定された矩形領域の左上隅のY座標
- w- 指定された矩形領域の幅
- h- 指定された矩形領域の高さ
- 戻り値:
- Shapeの内部に、指定された矩形領域が完全に含まれる場合は- true、それ以外の場合、または- Shapeに矩形領域が含まれ、- intersectsメソッドが- trueを返し、さらに負荷が大きすぎて包含の計算を実行できない場合は- false。
- 導入されたバージョン:
- 1.2
- 関連項目:
- Area、- Shape.intersects(double, double, double, double)
 
- 
 
- 
containspublic boolean contains(Rectangle2D r)Shapeの内部に、指定されたRectangle2Dが完全に含まれるかどうかをテストします。Shape.contains()メソッドを使用すると、次のような場合に、Shape実装は内部的にfalseを返すことができます。- 
 intersectメソッドがtrueを返し、かつ
- 
 ShapeにRectangle2Dが完全に含まれるかどうかを判定するための計算の負荷が非常に大きい。
 Shapesによっては、ShapeにRectangle2Dが含まれている場合でもこのメソッドがfalseを返すことがあります。Areaクラスは、ほとんどのShapeオブジェクトより正確な幾何学的計算を実行するため、より的確な答えが必要な場合に使用できます。- 定義:
- contains、インタフェース:- Shape
- パラメータ:
- r- 指定された- Rectangle2D
- 戻り値:
- Shapeの内部に- Rectangle2Dが完全に含まれる場合は- true、それ以外の場合、または- Shapeに- Rectangle2Dが含まれ、- intersectsメソッドが- trueを返し、さらに負荷が大きすぎて包含の計算を実行できない場合は- false。
- 導入されたバージョン:
- 1.2
- 関連項目:
- Shape.contains(double, double, double, double)
 
- 
 
- 
intersectspublic boolean intersects(double x, double y, double w, double h)Shapeの内部が指定された矩形領域の内部と交差しているかどうかをテストします。Shapeの内部と指定された矩形領域の両方に含まれている点が存在する場合、その矩形領域はShapeと交差していると見なされます。Shape.intersects()メソッドを使用すると、次のような場合に、Shape実装は内部的にtrueを返すことができます。- 
 矩形領域とShapeが交差している可能性が高いが、
- この共通部分を正確に判断する計算の負荷がかなり大きい。
 Shapesによっては、矩形領域がShapeと交差していない場合でもこのメソッドがtrueを返すことがあります。Areaクラスは、ほとんどのShapeオブジェクトより正確な、幾何学的な共通部分の計算を実行するため、より的確な答えが必要な場合に使用できます。- 定義:
- intersects、インタフェース:- Shape
- パラメータ:
- x- 指定された矩形領域の左上隅のX座標
- y- 指定された矩形領域の左上隅のY座標
- w- 指定された矩形領域の幅
- h- 指定された矩形領域の高さ
- 戻り値:
- Shapeの内部と矩形領域の内部が交差しているか、またはどちらも交差している可能性が高いが、負荷が大きすぎて共通部分の計算を実行できない場合は- true、それ以外の場合は- false。
- 導入されたバージョン:
- 1.2
- 関連項目:
- Area
 
- 
 矩形領域と
- 
intersectspublic boolean intersects(Rectangle2D r)Shapeの内部が指定されたRectangle2Dの内部と交差しているかどうかをテストします。Shape.intersects()メソッドを使用すると、次のような場合に、Shape実装は内部的にtrueを返すことができます。- 
 Rectangle2DとShapeが交差している可能性が高いが、
- この共通部分を正確に判断する計算の負荷がかなり大きい。
 Shapesによっては、Rectangle2DがShapeと交差していない場合でもこのメソッドがtrueを返すことがあります。Areaクラスは、ほとんどのShapeオブジェクトより正確な、幾何学的な共通部分の計算を実行するため、より的確な答えが必要な場合に使用できます。- 定義:
- intersects、インタフェース:- Shape
- パラメータ:
- r- 指定された- Rectangle2D
- 戻り値:
- Shapeの内部と指定された- Rectangle2Dの内部が交差しているか、またはどちらも交差している可能性が高いが、負荷が大きすぎて共通部分の計算を実行できない場合は- true、それ以外の場合は- false。
- 導入されたバージョン:
- 1.2
- 関連項目:
- Shape.intersects(double, double, double, double)
 
- 
 
- 
getPathIteratorpublic PathIterator getPathIterator(AffineTransform at)このAreaオブジェクトの輪郭のPathIteratorを作成します。 このAreaオブジェクトは変化しません。- 定義:
- getPathIterator、インタフェース:- Shape
- パラメータ:
- at- 反復処理で返されるときに座標に適用されるオプションの- AffineTransform、または変換されていない座標が必要な場合は- null
- 戻り値:
- このAreaの輪郭の幾何学的図形を一度に1セグメントずつ返すPathIteratorオブジェクト。
- 導入されたバージョン:
- 1.2
 
- 
getPathIteratorpublic PathIterator getPathIterator(AffineTransform at, double flatness)このAreaオブジェクトの平坦化した輪郭のPathIteratorを作成します。 SEG_MOVETO、SEG_LINETO、SEG_CLOSEの3種類の点によって表現される曲線状でないパス・セグメントだけが、イテレータによって返されます。 このAreaオブジェクトは変化しません。- 定義:
- getPathIterator、インタフェース:- Shape
- パラメータ:
- at- 反復処理で返されるときに座標に適用されるオプションの- AffineTransform、または変換されていない座標が必要な場合は- null
- flatness- 分割された曲線が終点を結ぶ直線によって置換される前に、指定された曲線の制御点が共線から外れることのできる最大距離
- 戻り値:
- このAreaの輪郭の幾何学的図形を一度に1セグメントずつ返すPathIteratorオブジェクト。
- 導入されたバージョン:
- 1.2
 
 
-