|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.awt.Polygon
public class Polygon
Polygon クラスは、座標空間を持つ閉じられた 2 次元領域の記述をカプセル化します。この領域は、多角形の 1 辺をなす線セグメントの任意の数によって境界を区切られます。内部的には、多角形は (x,y) 座標ペアのリストから構成されます。 この場合、各ペアは多角形の「頂点」を定義し、連続する 2 つのペアは多角形の 1 辺をなす線の端点になります。(x,y) 点の最初と最後のペアは、多角形を閉じる線セグメントによって結合されます。この Polygon は偶奇屈曲規則によって定義されます。偶奇屈曲規則の定義については、WIND_EVEN_ODD を参照してください。contains、intersects、および inside メソッドを含むこのクラスのヒット検査メソッドは、Shape クラスのコメントに記述された「内側」の定義を使用します。
Shape,
直列化された形式| フィールドの概要 | |
|---|---|
protected Rectangle |
bounds
この Polygon の境界です。 |
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)
Shape の内部領域が、指定された矩形領域を完全に包含するかどうかを判定します。 |
boolean |
contains(int x,
int y)
指定された座標がこの Polygon の内側にあるかどうかを判定します。 |
boolean |
contains(Point p)
指定された Point がこの Polygon の内側にあるかどうかを判定します。 |
boolean |
contains(Point2D p)
指定された Point2D が Shape の境界内にあるかどうかを判定します。 |
boolean |
contains(Rectangle2D r)
Shape の内部が、指定された Rectangle2D を完全に内包するかどうかを判定します。 |
Rectangle |
getBoundingBox()
推奨されていません。 JDK version 1.1 以降は、 getBounds() に置き換えられました。 |
Rectangle |
getBounds()
この Polygon のバウンディングボックスを返します。 |
Rectangle2D |
getBounds2D()
高精度で getBounds メソッドより精密な、Shape のバウンディングボックスを返します。 |
PathIterator |
getPathIterator(AffineTransform at)
この Polygon の境界に沿って繰り返し処理を行い、Polygon の輪郭の幾何学的図形へのアクセスを提供する反復子オブジェクトを返します。 |
PathIterator |
getPathIterator(AffineTransform at,
double flatness)
Shape の境界に沿って繰り返し処理を行い、Shape の輪郭の幾何学的図形へのアクセスを提供する反復子オブジェクトを返します。 |
boolean |
inside(int x,
int y)
推奨されていません。 JDK version 1.1 以降は、 contains(int, int) に置き換えられました。 |
boolean |
intersects(double x,
double y,
double w,
double h)
Shape の内部領域が、指定された矩形領域の内部領域と交差するかどうかを判定します。 |
boolean |
intersects(Rectangle2D r)
Shape の内部が、指定された 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 |
| フィールドの詳細 |
|---|
public int npoints
npoints の値はこの Polygon の有効な点の数を表し、xpoints または ypoints の要素の数より小さくなります。この値は null を取ることができます。
addPoint(int, int)public int[] xpoints
Polygon の X 座標の数よりも大きくなります。余分な要素により、この配列を再度作成せずに、この Polygon に新しい点を追加できます。npoints の値は、この Polygon の有効な点の数と同じです。
addPoint(int, int)public int[] ypoints
Polygon の Y 座標の数よりも大きくなります。余分な要素により、この配列を再度作成せずに、この Polygon に新しい点を追加できます。npoints の値は、この Polygon の有効な点の数と同じです。
addPoint(int, int)protected Rectangle bounds
Polygon の境界です。null も使用できます。
getBoundingBox(),
getBounds()| コンストラクタの詳細 |
|---|
public Polygon()
public Polygon(int[] xpoints,
int[] ypoints,
int npoints)
Polygon を構築および初期化します。
xpoints - X 座標の配列ypoints - Y 座標の配列npoints - Polygon の点の
総数
NegativeArraySizeException - npoints の値が
負の場合
IndexOutOfBoundsException - npoints が
xpoints の長さまたは
ypoints の長さより大きい場合
NullPointerException - xpoints または
ypoints が null の場合| メソッドの詳細 |
|---|
public void reset()
Polygon オブジェクトを空の多角形にリセットします。その中にある座標配列とデータはそのまま残りますが、点の数はゼロにリセットされ、古い頂点のデータを無効としてマークし、最初から新しい頂点のデータの蓄積を開始します。内部にキャッシュされたすべての古い頂点に関するデータは破棄されます。リセットする前の座標配列が再使用されるので、新しい多角形のデータの頂点の数がリセット前のデータの頂点の数よりもかなり小さい場合は、新しい空の Polygon の作成の方が現在の多角形をリセットするよりもメモリーをより効率的に使用できることに注意してください。
invalidate()public void invalidate()
Polygon の頂点の座標に依存する内部にキャッシュされたすべてのデータを無効にするか、またはフラッシュします。このメソッドは、xpoints または ypoints 配列の座標を直接操作したあとに呼び出す必要があります。 これは、頂点の座標に関連する以前の計算からデータをキャッシュしている getBounds または contains などのメソッドから一貫した結果が得られるようにするためです。
getBounds()
public void translate(int deltaX,
int deltaY)
Polygon の頂点を x 軸に沿って deltaX、および y 軸に沿って deltaY 移動します。
deltaX - X 軸に沿って移動する距離deltaY - Y 軸に沿って移動する距離
public void addPoint(int x,
int y)
Polygon に指定された座標を追加します。
この Polygon のバウンディングボックスを計算する getBounds または contains などの演算がすでに実行されている場合、このメソッドはバウンディングボックスを更新します。
x - 指定された X 座標y - 指定された Y 座標getBounds(),
contains(java.awt.Point)public Rectangle getBounds()
Polygon のバウンディングボックスを返します。このバウンディングボックスは辺が座標空間の x 軸および y 軸に平行で Polygon を完全に格納する最小の Rectangle です。
Shape 内の getBoundsPolygon の境界を定義する
RectangleShape.getBounds2D()@Deprecated public Rectangle getBoundingBox()
getBounds() に置き換えられました。
Polygon の境界を返します。
Polygon の境界public boolean contains(Point p)
Point がこの Polygon の内側にあるかどうかを判定します。
p - 判定対象の、指定された Point
Polygon に Point が含まれる場合は
true、そうでない場合は falsecontains(double, double)
public boolean contains(int x,
int y)
Polygon の内側にあるかどうかを判定します。
x - 判定対象の指定された X 座標y - 判定対象の指定された Y 座標
Polygon に指定された座標 (x,y) が
含まれる場合は true、
そうでない場合は falsecontains(double, double)
@Deprecated
public boolean inside(int x,
int y)
contains(int, int) に置き換えられました。
Polygon に内包されているかどうかを判定します。
x - 判定対象の指定された X 座標y - 判定対象の指定された Y 座標
Polygon に指定された座標 (x,y) が
含まれる場合は true、
そうでない場合は falsecontains(double, double)public Rectangle2D getBounds2D()
getBounds メソッドより精密な、Shape のバウンディングボックスを返します。返された Rectangle2D が Shape を囲む最小のバウンディングボックスであるとは限りません。 示された Rectangle2D 内に Shape が完全に収まるというだけです。戻り値を、倍精度値を使用して寸法を格納する Rectangle2D のインスタンスにすることもできるため、このメソッドによって返されるバウンディングボックスは、通常、getBounds メソッドによって返されるバウンディングボックスよりもぴったりしたものになり、オーバーフローのために失敗することはありません。
Shape 内の getBounds2DShape の高精度バウンディングボックスを表す
Rectangle2D のインスタンスShape.getBounds()
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 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 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 PathIterator getPathIterator(AffineTransform at)
Polygon の境界に沿って繰り返し処理を行い、Polygon の輪郭の幾何学的図形へのアクセスを提供する反復子オブジェクトを返します。任意で AffineTransform を指定でき、その場合は繰り返し処理で返される座標はそれに応じて変換されます。
Shape 内の getPathIteratorat - 繰り返し処理で返されるときに座標に適用される
オプションの AffineTransform、
変換されていない座標が必要な場合は null
Polygon の幾何学的図形へのアクセスを提供する
PathIterator オブジェクト
public PathIterator getPathIterator(AffineTransform at,
double flatness)
Shape の境界に沿って繰り返し処理を行い、Shape の輪郭の幾何学的図形へのアクセスを提供する反復子オブジェクトを返します。反復子が返すのは、ポイント型 SEG_MOVETO、SEG_LINETO、および SEG_CLOSE だけです。多角形はすでに平坦であるため、flatness パラメータは無視されます。オプションの AffineTransform は、繰り返し処理で返される座標がそれに応じて変換される場合に指定することができます。
Shape 内の getPathIteratorat - 繰り返し処理で返されるときに座標に適用される
オプションの AffineTransform、
変換されていない座標が必要な場合は nullflatness - 分割された曲線が終点を結ぶ直線によって
置換される前に、指定された曲線の制御点が
共線から外れることのできる
最大距離。多角形はすでに平坦であるため、
flatness パラメータは無視される
Shape オブジェクトの幾何学的図形への
アクセスを提供する PathIterator オブジェクト
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。