- java.lang.Object
- 
- java.awt.Polygon
 
- 
- すべての実装されたインタフェース:
- Shape,- Serializable
 
 public class Polygon extends Object implements Shape, Serializable Polygonクラスは、座標空間内の閉じられた2次元領域の記述をカプセル化します。 この領域は、多角形の1辺をなす線セグメントの任意の数によって境界を区切られます。 内部的には、多角形は(x,y)座標ペアのリストから構成されます。この場合、各ペアは多角形の頂点を定義し、連続する2つのペアは多角形の1辺をなす線の端点になります。(x,y)点の最初と最後のペアは、多角形を閉じる線セグメントによって結合されます。 このPolygonは偶奇屈曲ルールによって定義されます。 偶奇屈曲ルールの定義については、WIND_EVEN_ODDを参照してください。contains、intersectsおよびinsideメソッドを含むこのクラスの当たり判定メソッドは、Shapeクラスのコメントに記述された内側の定義を使用します。
- 
- 
メソッドのサマリー修飾子と型 メソッド 説明 voidaddPoint(int x, int y)このPolygonに指定された座標を追加します。booleancontains(double x, double y)指定された座標が、内側の定義によって記述されたShapeの境界の内側にあるかどうかをテストします。booleancontains(double x, double y, double w, double h)Shapeの内部に、指定された矩形領域が完全に含まれるかどうかをテストします。booleancontains(int x, int y)指定された座標がこのPolygonの内側にあるかどうかを判定します。booleancontains(Point2D p)booleancontains(Rectangle2D r)Shapeの内部に、指定されたRectangle2Dが完全に含まれるかどうかをテストします。booleancontains(Point p)指定されたPointがこのPolygonの内側にあるかどうかを判定します。RectanglegetBoundingBox()非推奨。JDK Version 1.1以降は、getBounds()に置き換えられています。RectanglegetBounds()このPolygonのバウンディング・ボックスを取得します。Rectangle2DgetBounds2D()高精度で、かつgetBoundsメソッドより正確なShapeのバウンディング・ボックスを返します。PathIteratorgetPathIterator(AffineTransform at)このPolygonの境界に沿って反復し、このPolygonの輪郭の幾何学的図形へのアクセスを提供するイテレータ・オブジェクトを返します。PathIteratorgetPathIterator(AffineTransform at, double flatness)Shapeの境界に沿って反復し、Shapeの輪郭の幾何学的図形へのアクセスを提供するイテレータ・オブジェクトを返します。booleaninside(int x, int y)非推奨。JDK Version 1.1以降は、contains(int, int)に置き換えられています。booleanintersects(double x, double y, double w, double h)Shapeの内部が指定された矩形領域の内部と交差しているかどうかをテストします。booleanintersects(Rectangle2D r)Shapeの内部が指定されたRectangle2Dの内部と交差しているかどうかをテストします。voidinvalidate()このPolygonの頂点の座標に依存する、内部的にキャッシュされたすべてのデータを無効にするか、またはフラッシュします。voidreset()このPolygonオブジェクトを空の多角形にリセットします。voidtranslate(int deltaX, int deltaY)Polygonの頂点を、X軸に沿ってdeltaX、Y軸に沿ってdeltaYに平行移動します。
 
- 
- 
- 
フィールドの詳細- 
npointspublic int npoints - 導入されたバージョン:
- 1.0
- 関連項目:
- addPoint(int, int)
 
 - 
xpointspublic int[] xpoints X座標の配列です。 この配列の要素の数は、このPolygonのX座標の数よりも大きくなる可能性があります。 余分な要素により、この配列を再作成せずに、このPolygonに新しい点を追加できます。npointsの値は、このPolygon内の有効な点の数と同じです。- 導入されたバージョン:
- 1.0
- 関連項目:
- addPoint(int, int)
 
 - 
ypointspublic int[] ypoints Y座標の配列です。 この配列の要素の数は、このPolygonのY座標の数よりも大きくなります。 余分な要素により、この配列を再作成せずに、このPolygonに新しい点を追加できます。npointsの値は、このPolygon内の有効な点の数と同じです。- 導入されたバージョン:
- 1.0
- 関連項目:
- addPoint(int, int)
 
 - 
boundsprotected Rectangle bounds このPolygonの境界。 nullも指定できます。- 導入されたバージョン:
- 1.0
- 関連項目:
- getBoundingBox(),- getBounds()
 
 
- 
 - 
コンストラクタの詳細- 
Polygonpublic Polygon() 空の多角形を作成します。- 導入されたバージョン:
- 1.0
 
 - 
Polygonpublic Polygon(int[] xpoints, int[] ypoints, int npoints)指定されたパラメータからPolygonを構築して初期化します。- パラメータ:
- xpoints- X座標の配列
- ypoints- Y座標の配列
- npoints-- Polygonの点の総数
- 例外:
- NegativeArraySizeException-- npointsの値が負の場合。
- IndexOutOfBoundsException-- npointsが- xpointsの長さまたは- ypointsの長さより大きい場合。
- NullPointerException-- xpointsまたは- ypointsが- nullの場合
- 導入されたバージョン:
- 1.0
 
 
- 
 - 
メソッドの詳細- 
resetpublic void reset() このPolygonオブジェクトを空の多角形にリセットします。 その中にある座標配列とデータはそのまま残りますが、点の数はゼロにリセットされ、古い頂点のデータを無効としてマークし、最初から新しい頂点のデータの蓄積を開始します。 内部にキャッシュされたすべての古い頂点に関するデータは破棄されます。 リセットする前の座標配列が再使用されるので、新しい多角形のデータの頂点の数がリセット前のデータの頂点の数よりもかなり小さい場合は、新しい空のPolygonの作成の方が現在の多角形をリセットするよりもメモリーをより効率的に使用できます。- 導入されたバージョン:
- 1.4
- 関連項目:
- invalidate()
 
 - 
invalidatepublic void invalidate() このPolygonの頂点の座標に依存する、内部的にキャッシュされたすべてのデータを無効にするか、またはフラッシュします。 このメソッドは、xpointsまたはypoints配列の座標を直接操作したあとに呼び出す必要があります。これは、頂点の座標に関連する以前の計算からデータをキャッシュしているgetBoundsまたはcontainsなどのメソッドから一貫した結果が得られるようにするためです。- 導入されたバージョン:
- 1.4
- 関連項目:
- getBounds()
 
 - 
translatepublic void translate(int deltaX, int deltaY)Polygonの頂点を、X軸に沿ってdeltaX、Y軸に沿ってdeltaYに平行移動します。- パラメータ:
- deltaX- X軸に沿って移動する距離
- deltaY- Y軸に沿って移動する距離
- 導入されたバージョン:
- 1.1
 
 - 
addPointpublic void addPoint(int x, int y)このPolygonに指定された座標を追加します。この Polygonのバウンディング・ボックスを計算するgetBoundsまたはcontainsなどの演算がすでに実行されている場合、このメソッドはバウンディング・ボックスを更新します。- パラメータ:
- x- 指定されたX座標
- y- 指定されたY座標
- 導入されたバージョン:
- 1.0
- 関連項目:
- getBounds(),- contains(java.awt.Point)
 
 - 
getBoundspublic Rectangle getBounds() このPolygonのバウンディング・ボックスを取得します。 このバウンディング・ボックスは辺が座標空間のx軸およびy軸に平行でPolygonを完全に格納する最小のRectangleです。- 定義:
- getBounds、インタフェース:- Shape
- 戻り値:
- このPolygonの境界を定義するRectangle。
- 導入されたバージョン:
- 1.1
- 関連項目:
- Shape.getBounds2D()
 
 - 
getBoundingBox@Deprecated public Rectangle getBoundingBox() 非推奨。JDK Version 1.1以降は、getBounds()に置き換えられています。このPolygonの境界を返します。- 戻り値:
- このPolygonの境界。
- 導入されたバージョン:
- 1.0
 
 - 
containspublic boolean contains(Point p) 指定されたPointがこのPolygonの内側にあるかどうかを判定します。- パラメータ:
- p- テストされる指定された- Point
- 戻り値:
- Polygonに- Pointが含まれる場合は- true、そうでない場合は- false。
- 導入されたバージョン:
- 1.0
- 関連項目:
- contains(double, double)
 
 - 
containspublic boolean contains(int x, int y)指定された座標がこのPolygonの内側にあるかどうかを判定します。- パラメータ:
- x- テストされる指定されたX座標
- y- テストされる指定されたY座標
- 戻り値:
- このPolygonに、指定された座標(x,y)が含まれる場合はtrue、それ以外の場合はfalse。
- 導入されたバージョン:
- 1.1
- 関連項目:
- contains(double, double)
 
 - 
inside@Deprecated public boolean inside(int x, int y) 非推奨。JDK Version 1.1以降は、contains(int, int)に置き換えられています。指定された座標がこのPolygonに内包されているかどうかを判定します。- パラメータ:
- x- テストされる指定されたX座標
- y- テストされる指定されたY座標
- 戻り値:
- このPolygonに、指定された座標(x,y)が含まれる場合はtrue、それ以外の場合はfalse。
- 導入されたバージョン:
- 1.0
- 関連項目:
- contains(double, double)
 
 - 
getBounds2Dpublic Rectangle2D getBounds2D() 高精度で、かつgetBoundsメソッドより正確なShapeのバウンディング・ボックスを返します。 返されたRectangle2Dが、Shapeを囲む最小のバウンディング・ボックスであるという保証はありません。Shapeが、示されたRectangle2D内に完全に含まれているだけです。 戻り値を、倍精度値を使用して寸法を格納するRectangle2Dのインスタンスにすることができるため、このメソッドによって返されたバウンディング・ボックスは通常、getBoundsメソッドによって返されたものより厳密であり、オーバーフローの問題のために失敗することはありません。内側の定義によって、 shapeの定義する輪郭上の点が、返されたboundsオブジェクトに含まれていると見なされない状況が発生する場合があります。ただし、これは、これらの点が元のshapeにも含まれていないと見なされる場合のみです。pointがcontains(point)メソッドに従ってshapeの内側にある場合は、boundsのcontains(point)メソッドに従って、返されたRectangle2D境界オブジェクトの内側にある必要があります。 具体的には、次のようになります。shape.contains(p)にはbounds.contains(p)が必要pointがshapeの内側にない場合は、引き続きboundsオブジェクトに含まれている可能性があります。bounds.contains(p)はshape.contains(p)を示さない- 定義:
- getBounds2D、インタフェース:- Shape
- 戻り値:
- Shapeの高精度のバウンディング・ボックスである- Rectangle2Dのインスタンス。
- 導入されたバージョン:
- 1.2
- 関連項目:
- Shape.getBounds()
 
 - 
containspublic boolean contains(double x, double y)指定された座標が、内側の定義によって記述されたShapeの境界の内側にあるかどうかをテストします。
 - 
containspublic boolean contains(Point2D p) 
 - 
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)
 
- 
 
 - 
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)
 
- 
 
 - 
getPathIteratorpublic PathIterator getPathIterator(AffineTransform at) このPolygonの境界に沿って反復し、このPolygonの輪郭の幾何学的図形へのアクセスを提供するイテレータ・オブジェクトを返します。 オプションのAffineTransformを指定することもでき、その場合は反復処理で返される座標がそれに応じて変換されます。- 定義:
- getPathIterator、インタフェース:- Shape
- パラメータ:
- at- 反復処理で返されるときに座標に適用されるオプションの- AffineTransform、または変換されていない座標が必要な場合は- null
- 戻り値:
- このPolygonの幾何学的図形へのアクセスを提供するPathIteratorオブジェクト。
- 導入されたバージョン:
- 1.2
 
 - 
getPathIteratorpublic PathIterator getPathIterator(AffineTransform at, double flatness) Shapeの境界に沿って反復し、Shapeの輪郭の幾何学的図形へのアクセスを提供するイテレータ・オブジェクトを返します。 イテレータが返すのは、ポイント型SEG_MOVETO、SEG_LINETO、およびSEG_CLOSEだけです。 多角形はすでに平坦であるため、flatnessパラメータは無視されます。 オプションのAffineTransformは、反復処理で返される座標がそれに応じて変換される場合に指定することができます。- 定義:
- getPathIterator、インタフェース:- Shape
- パラメータ:
- at- 反復処理で返されるときに座標に適用されるオプションの- AffineTransform、または変換されていない座標が必要な場合は- null
- flatness- 細分化された曲線が端点を結ぶ直線で置き換えられる前に、与えられた曲線の制御点が同一直線から変化することができる最大量。 多角形はすでに平坦であるため、- flatnessパラメータは無視される。
- 戻り値:
- Shapeオブジェクトの幾何学的図形へのアクセスを提供する- PathIteratorオブジェクト。
- 導入されたバージョン:
- 1.2
 
 
- 
 
-