JavaTM 2 Platform
Std. Ed. v1.3

java.awt
クラス Polygon

java.lang.Object
  |
  +--java.awt.Polygon
すべての実装インタフェース:
Serializable, Shape

public class Polygon
extends Object
implements Shape, Serializable

Polygon クラスは、座標空間内の閉じた 2 次元領域の記述をカプセル化します。この領域は、それぞれが多角形の 1 辺となる任意の数のラインセグメントで区切られます。本質的に多角形は、一対の (xy) 座標のリストからなり、各座標は多角形の頂点を定義し、2 つの連続する座標は多角形の 1 辺となる線の両方の端点を定義します。最初と最後の点 (xy) がラインセグメントによって結ばれることにより、多角形が閉じられます。

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

フィールドの概要
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)
          指定された座標が Shape の境界内にあるかどうかを判定します。
 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 translate(int deltaX, int deltaY)
          x 軸に沿って deltaX、y 軸に沿って deltaY によって Polygon の頂点を変換します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

npoints

public int npoints
点の総数です。null も指定できます。
関連項目:
addPoint(int, int)

xpoints

public int[] xpoints
x 座標の配列です。
関連項目:
addPoint(int, int)

ypoints

public int[] ypoints
y 座標の配列です。
関連項目:
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 の値が負の値の場合
メソッドの詳細

translate

public void translate(int deltaX,
                      int deltaY)
x 軸に沿って deltaX、y 軸に沿って deltaY によって Polygon の頂点を変換します。
パラメータ:
deltaX - x 軸に沿って平行移動する量
deltaY - y 軸に沿って平行移動する量
導入されたバージョン:
JDK1.1

addPoint

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

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

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

getBounds

public Rectangle getBounds()
この Polygon のバウンディングボックスを取得します。バウンディングボックスは、座標空間の x 軸および y 軸に平行な辺を持ち、Polygon 全体を収容できるもっとも小さい Rectangle です。
定義:
インタフェース Shape 内の getBounds
戻り値:
この Polygon の境界を定義する Rectangle
導入されたバージョン:
JDK1.1

getBoundingBox

public Rectangle getBoundingBox()
推奨されていません。 JDK バージョン 1.1 以降は、getBounds() に置き換えられました。


contains

public boolean contains(Point p)
指定した Point がこの Polygon の内側にあるかどうかを判定します。偶奇規則(交互規則ともいう)を使用します。
パラメータ:
p - 調べる対象の Point
戻り値:
Polygon の内側に Point がある場合は true、そうでない場合は false

contains

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

contains メソッドは Hanpeter van Vliet [hvvliet@inter.nl.net] によるコードをベースにしています。

パラメータ:
x, y - 調べる対象の座標
戻り値:
この Polygon に指定された座標 (xy) が含まれている場合は true、そうでない場合は false
導入されたバージョン:
JDK1.1

inside

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


getBounds2D

public Rectangle2D getBounds2D()
Shape の高精度のバウンディングボックスを返します。
定義:
インタフェース Shape 内の getBounds2D
戻り値:
Shape の正確な境界を表す Rectangle2D

contains

public boolean contains(double x,
                        double y)
指定された座標が Shape の境界内にあるかどうかを判定します。
定義:
インタフェース Shape 内の contains
パラメータ:
x, y - 座標
戻り値:
Shape に指定された座標が含まれている場合は true、そうでない場合は false

contains

public boolean contains(Point2D p)
指定された Point2D がこの Polygon の境界内にあるかどうかを判定します。
定義:
インタフェース Shape 内の contains
パラメータ:
p - Point2D
戻り値:
この Polygon に、指定された Point2D が含まれている場合は true、そうでない場合は false

intersects

public boolean intersects(double x,
                          double y,
                          double w,
                          double h)
この Polygon の内部領域が、指定された矩形の座標群の内部領域と交差するかどうかを判定します。
定義:
インタフェース Shape 内の intersects
パラメータ:
x, y - 矩形形状の左上隅の座標
w - 矩形形状の幅
h - 矩形形状の高さ
戻り値:
この Polygon の内部領域と指定された矩形の座標群の内部領域が交差する場合は true、そうでない場合は false

intersects

public boolean intersects(Rectangle2D r)
この Polygon の内部領域が、指定された Rectangle2D の内部領域と交差するかどうかを判定します。
定義:
インタフェース Shape 内の intersects
パラメータ:
r - Rectangle2D
戻り値:
この Polygon と指定された Rectangle2D の内部領域が交差する場合は true、そうでない場合は false

contains

public boolean contains(double x,
                        double y,
                        double w,
                        double h)
この Polygon の内部領域が、指定された矩形の座標群を完全に含むかどうかを判定します。
定義:
インタフェース Shape 内の contains
パラメータ:
x, y - 矩形の座標群の左上隅の座標
w - 矩形の座標群の幅
h - 矩形の座標群の高さ
戻り値:
この Polygon が指定された矩形の座標群を完全に含んでいる場合は true、そうでない場合は false

contains

public boolean contains(Rectangle2D r)
この Polygon の内部領域が、指定された Rectangle2D を完全に含むかどうかを判定します。
定義:
インタフェース Shape 内の contains
パラメータ:
r - Rectangle2D
戻り値:
この Polygon が、指定された Rectangle2D を完全に含んでいる場合は true、そうでない場合は false

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
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.