JavaTM 2 Platform
Standard Ed. 5.0

java.awt
クラス Polygon

java.lang.Object
  上位を拡張 java.awt.Polygon
すべての実装されたインタフェース:
Shape, Serializable

public class Polygon
extends Object
implements Shape, Serializable

Polygon クラスは、座標空間を持つ閉じられた 2 次元領域の記述をカプセル化します。この領域は、多角形の 1 辺をなす線セグメントの任意の数によって境界を区切られます。内部的には、多角形は (xy) 座標ペアのリストから構成されます。この場合、各ペアは多角形の「頂点」を定義し、連続する 2 つのペアは多角形の 1 辺をなす線の端点になります。(xy) 点の最初と最後のペアは、多角形を閉じる線セグメントによって結合されます。この Polygon は偶奇屈曲規則によって定義されます。偶奇屈曲規則の定義については、WIND_EVEN_ODD を参照してください。containsintersects、および inside メソッドを含むこのクラスのヒット検査メソッドは、Shape クラスのコメントに記述された「内側」の定義を使用します。

導入されたバージョン:
JDK1.0
関連項目:
Shape, 直列化された形式

フィールドの概要
protected  Rectangle bounds
          多角形の境界です。
 int npoints
          点の総数です。
 int[] xpoints
          x 座標の配列です。
 int[] ypoints
          y 座標の配列です。
 
コンストラクタの概要
Polygon()
          空の多角形を作成します。
Polygon(int[] xpoints, int[] ypoints, int npoints)
          指定されたパラメータから Polygon を構築および初期化します。
 
メソッドの概要
 void addPoint(int x, int y)
          この Polygon に指定された座標を追加します。
 boolean contains(double x, double y)
          指定された座標が Polygon の内側にあるかどうかを判定します。
 boolean contains(double x, double y, double w, double h)
          この Polygon の内部が、指定された矩形座標セットを完全に内包するかどうかを判定します。
 boolean contains(int x, int y)
          指定された座標がこの Polygon の内側にあるかどうかを判定します。
 boolean contains(Point p)
          指定された Point がこの Polygon の内側にあるかどうかを判定します。
 boolean contains(Point2D p)
          指定された Point2D がこの Polygon の境界内にあるかどうかを判定します。
 boolean contains(Rectangle2D r)
          この Polygon の内部が、指定された Rectangle2D を完全に内包するかどうかを判定します。
 Rectangle getBoundingBox()
          推奨されていません。 JDK バージョン 1.1 以降は、getBounds() を使用します。
 Rectangle getBounds()
          この Polygon のバウンディングボックスを返します。
 Rectangle2D getBounds2D()
          Shape の高精度バウンディングボックスを返します。
 PathIterator getPathIterator(AffineTransform at)
          この Polygon の境界に沿って繰り返し処理を行い、Polygon の輪郭のジオメトリへのアクセスを提供する反復子オブジェクトを返します。
 PathIterator getPathIterator(AffineTransform at, double flatness)
          Shape の境界に沿って繰り返し処理を行い、Shape の輪郭のジオメトリへのアクセスを提供する反復子オブジェクトを返します。
 boolean inside(int x, int y)
          推奨されていません。 JDK バージョン 1.1 以降は、contains(int, int) に置き換えられました。
 boolean intersects(double x, double y, double w, double h)
          この Polygon の内部が、指定された矩形座標セットの内部と交差するかどうかを判定します。
 boolean intersects(Rectangle2D r)
          この Polygon の内部が、指定された Rectangle2D の内部と交差するかどうかを判定します。
 void invalidate()
          この Polygon の頂点の座標に依存する内部にキャッシュされたすべてのデータを無効にするか、またはフラッシュします。
 void reset()
          この Polygon オブジェクトを空の多角形にリセットします。
 void translate(int deltaX, int deltaY)
          Polygon の頂点を x 軸に沿って deltaX、および y 軸に沿って deltaY 移動します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

npoints

public int npoints
点の総数です。npoints の値はこの Polygon の有効な点の数を表し、xpoints または ypoints の要素の数より小さくなります。この値は null を取ることができます。

関連項目:
addPoint(int, int)

xpoints

public int[] xpoints
x 座標の配列です。この配列の要素の数は、この Polygonx 座標の数よりも大きくなります。余分な要素により、この配列を再度作成せずに、この Polygon に新しい点を追加できます。npoints の値は、この Polygon の有効な点の数と同じです。

関連項目:
addPoint(int, int)

ypoints

public int[] ypoints
y 座標の配列です。この配列の要素の数は、この Polygony 座標の数よりも大きくなります。余分な要素により、この配列を再度作成せずに、この Polygon に新しい点を追加できます。npoints の値は、この Polygon の有効な点の数と同じです。

関連項目:
addPoint(int, int)

bounds

protected Rectangle bounds
多角形の境界です。この値は null を取ることができます。javadoc コメントの getBounds() を参照してください。

関連項目:
getBoundingBox(), getBounds()
コンストラクタの詳細

Polygon

public Polygon()
空の多角形を作成します。


Polygon

public Polygon(int[] xpoints,
               int[] ypoints,
               int npoints)
指定されたパラメータから Polygon を構築および初期化します。

パラメータ:
xpoints - x 座標の配列
ypoints - y 座標の配列
npoints - Polygon の点の総数
例外:
NegativeArraySizeException - npoints の値が負である場合
IndexOutOfBoundsException - npointsxpoints の長さまたは ypoints の長さよりも大きい場合
NullPointerException - xpoints または ypointsnull の場合
メソッドの詳細

reset

public void reset()
この Polygon オブジェクトを空の多角形にリセットします。その中にある座標配列とデータはそのまま残りますが、点の数はゼロにリセットされ、古い頂点のデータを無効としてマークし、最初から新しい頂点のデータの蓄積を開始します。内部にキャッシュされたすべての古い頂点に関するデータは破棄されます。リセットする前の座標配列が再使用されるので、新しい多角形のデータの頂点の数がリセット前のデータの頂点の数よりもかなり小さい場合は、新しい空の Polygon の作成の方が現在の多角形をリセットするよりもメモリをより効率的に使用できることに注意してください。

導入されたバージョン:
1.4
関連項目:
invalidate()

invalidate

public void invalidate()
この Polygon の頂点の座標に依存する内部にキャッシュされたすべてのデータを無効にするか、またはフラッシュします。このメソッドは、xpoints または ypoints 配列の座標を直接操作したあとに呼び出す必要があります。これは、頂点の座標に関連する以前の計算からデータをキャッシュしている getBounds または contains などのメソッドから一貫した結果が得られるようにするためです。

導入されたバージョン:
1.4
関連項目:
getBounds()

translate

public void translate(int deltaX,
                      int deltaY)
Polygon の頂点を x 軸に沿って deltaX、および y 軸に沿って deltaY 移動します。

パラメータ:
deltaX - x 軸に沿って移動する距離
deltaY - y 軸に沿って移動する距離
導入されたバージョン:
JDK1.1

addPoint

public void addPoint(int x,
                     int y)
この Polygon に指定された座標を追加します。

この Polygon のバウンディングボックスを計算する getBounds または contains などの演算がすでに実行されている場合、このメソッドはバウンディングボックスを更新します。

パラメータ:
x - 指定された x 座標
y - 指定された y 座標
関連項目:
getBounds(), contains(java.awt.Point)

getBounds

public Rectangle getBounds()
この Polygon のバウンディングボックスを返します。このバウンディングボックスは辺が座標空間の x 軸および y 軸に平行で Polygon を完全に格納する最小の Rectangle です。

定義:
インタフェース Shape 内の getBounds
戻り値:
この Polygon の境界を定義する Rectangle
導入されたバージョン:
JDK1.1
関連項目:
Shape.getBounds2D()

getBoundingBox

@Deprecated
public Rectangle getBoundingBox()
推奨されていません。 JDK バージョン 1.1 以降は、getBounds() を使用します。

この Polygon の境界を返します。

戻り値:
この Polygon の境界

contains

public boolean contains(Point p)
指定された Point がこの Polygon の内側にあるかどうかを判定します。

パラメータ:
p - 判定対象の、指定された Point
戻り値:
PolygonPoint を内包している場合は true、そうでない場合は false
関連項目:
contains(double, double)

contains

public boolean contains(int x,
                        int y)
指定された座標がこの Polygon の内側にあるかどうかを判定します。

パラメータ:
x - 判定対象の指定された x 座標
y - 判定対象の指定された y 座標
戻り値:
この Polygon が指定座標 (xy) を内包している場合は true、そうでない場合は false
導入されたバージョン:
JDK1.1
関連項目:
contains(double, double)

inside

@Deprecated
public boolean inside(int x,
                                 int y)
推奨されていません。 JDK バージョン 1.1 以降は、contains(int, int) に置き換えられました。

指定された座標がこの Polygon に内包されているかどうかを判定します。

パラメータ:
x - 判定対象の指定された x 座標
y - 判定対象の指定された y 座標
戻り値:
この Polygon が指定座標 (xy) を内包している場合は true、そうでない場合は false
関連項目:
contains(double, double)

getBounds2D

public Rectangle2D getBounds2D()
Shape の高精度バウンディングボックスを返します。

定義:
インタフェース Shape 内の getBounds2D
戻り値:
Shape の正確な境界となる Rectangle2D
関連項目:
Shape.getBounds()

contains

public boolean contains(double x,
                        double y)
指定された座標が Polygon の内側にあるかどうかを判定します。「内側」の定義については Shape のクラスのコメントを参照してください。

定義:
インタフェース Shape 内の contains
パラメータ:
x - 指定された x 座標
y - 指定された y 座標
戻り値:
Polygon が指定された座標を内包している場合は true、そうでない場合は false

contains

public boolean contains(Point2D p)
指定された Point2D がこの Polygon の境界内にあるかどうかを判定します。

定義:
インタフェース Shape 内の contains
パラメータ:
p - 指定された Point2D
戻り値:
この Polygon が指定された Point2D を内包している場合は true、そうでない場合は false
関連項目:
contains(double, double)

intersects

public boolean intersects(double x,
                          double y,
                          double w,
                          double h)
この Polygon の内部が、指定された矩形座標セットの内部と交差するかどうかを判定します。

定義:
インタフェース Shape 内の intersects
パラメータ:
x - 指定された矩形形状の左上隅の x 座標
y - 指定された矩形形状の左上隅の y 座標
w - 指定された矩形形状の幅
h - 指定された矩形形状の高さ
戻り値:
この Polygon と指定された矩形座標セットの内部が交差する場合は true、そうでない場合は false
導入されたバージョン:
1.2
関連項目:
Area

intersects

public boolean intersects(Rectangle2D r)
この Polygon の内部が、指定された Rectangle2D の内部と交差するかどうかを判定します。

定義:
インタフェース Shape 内の intersects
パラメータ:
r - 指定された Rectangle2D
戻り値:
この Polygon と指定された Rectangle2D の内部が交差する場合は true、そうでない場合は false
関連項目:
Shape.intersects(double, double, double, double)

contains

public boolean contains(double x,
                        double y,
                        double w,
                        double h)
この Polygon の内部が、指定された矩形座標セットを完全に内包するかどうかを判定します。

定義:
インタフェース Shape 内の contains
パラメータ:
x - 指定された矩形座標セットの左上隅の x 座標
y - 指定された矩形座標セットの左上隅の y 座標
w - 矩形座標セットの幅
h - 矩形座標セットの高さ
戻り値:
この Polygon が指定された矩形座標セットを完全に内包する場合は true、そうでない場合は false
導入されたバージョン:
1.2
関連項目:
Area, Shape.intersects(double, double, double, double)

contains

public boolean contains(Rectangle2D r)
この Polygon の内部が、指定された Rectangle2D を完全に内包するかどうかを判定します。

定義:
インタフェース Shape 内の contains
パラメータ:
r - 指定された Rectangle2D
戻り値:
この Polygon が指定された Rectangle2D を完全に内包する場合は true、そうでない場合は false
関連項目:
contains(double, double, double, double)

getPathIterator

public PathIterator getPathIterator(AffineTransform at)
この Polygon の境界に沿って繰り返し処理を行い、Polygon の輪郭のジオメトリへのアクセスを提供する反復子オブジェクトを返します。任意の AffineTransform が指定された場合、繰り返し処理で返される座標がそれに応じて変換されます。

定義:
インタフェース Shape 内の getPathIterator
パラメータ:
at - 繰り返し処理で返される座標に適用されるオプションの AffineTransform。変換されていない座標が必要な場合は null
戻り値:
この Polygon のジオメトリへのアクセスを提供する PathIterator

getPathIterator

public PathIterator getPathIterator(AffineTransform at,
                                    double flatness)
Shape の境界に沿って繰り返し処理を行い、Shape の輪郭のジオメトリへのアクセスを提供する反復子オブジェクトを返します。SEG_MOVETO、SEG_LINETO、および SEG_CLOSE ポイント型だけが反復子によって返されます。多角形はすでに平坦であるため、flatness パラメータは無視されます。オプションの AffineTransform は、繰り返し処理で返される座標がそれに応じて変換される場合に指定することができます。

定義:
インタフェース Shape 内の getPathIterator
パラメータ:
at - 繰り返し処理で返される座標に適用されるオプションの AffineTransform。変換されていない座標が必要な場合は null
flatness - 指定された曲線上の制御点を動かしたとき、分割された曲線が端点を結ぶ直線により置換されない条件で、制御点がこの直線からもっとも離れる距離。多角形はすでに平坦であるため、flatness パラメータは無視される
戻り値:
Shape オブジェクトのジオメトリへのアクセスを提供する PathIterator オブジェクト

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。