|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.awt.geom.Area
public class Area
Area
オブジェクトは、2 次元空間の閉じた領域について解像度に依存しない記述を格納および操作します。Area
オブジェクトは変換可能で、ほかの Area
オブジェクトとの結合時に各種の CAG (構成領域幾何学的図形) 演算を実行できます。CAG 演算には領域の和
、差
、積
、および排他的論理和
などがあります。各種の演算の例については、リンク先のメソッドドキュメントを参照してください。
Area
クラスは、Shape
インタフェースを実装し、当たり判定機能およびパス繰り返し機能のすべてを完全にサポートします。ただし以下のような点で、Area
は一般化されたパスよりも特化されています。
Area
オブジェクトは、構築中に暗黙的に閉じられて、そのパスが Graphics2D.fill
メソッドで塗りつぶされたかのようになります。
Area
の輪郭線を記述するパスの幾何学的図形は、同じ 2 次元の閉じた領域を記述するという点だけが構築元のパスに似ています。ただし、記述するために使用するパスセグメントの種類と順序は、まったく異なることがあります。
Area
の使用時に必ずしも明白ではない点は次のとおりです。
Shape
から Area
を作成すると、Area
オブジェクトの輪郭線は閉じられます。
Shape
から Area
を作成すると、空の Area
が生成されます。たとえばよくある例として、ラインが囲んでいる領域がないために、このラインから Area
を生成すると空になります。空の Area
は、その PathIterator
オブジェクト内の幾何学的図形を繰り返し処理しません。
Shape
は、元のパスで交差していない部分を囲むような 2 つ以上のサブパスに分割されることがあります。
Area
は、元の輪郭線が単純で明確であっても、多くのパスセグメントを使用して同じ幾何学的図形を記述することがあります。Area
クラスがパス上で実行する必要がある分析は、人が考える「単純で明確」という概念と同じ概念を反映しているとはかぎりません。
コンストラクタの概要 | |
---|---|
Area()
空の領域を作成するデフォルトコンストラクタです。 |
|
Area(Shape s)
Area クラスは、指定された Shape オブジェクトから領域幾何学的図形を作成します。 |
メソッドの概要 | |
---|---|
void |
add(Area rhs)
指定された Area の形状をこの Area の形状に追加します。 |
Object |
clone()
この Area オブジェクトとまったく同じコピーを返します。 |
boolean |
contains(double x,
double y)
指定された座標が Shape の境界内にあるかどうかを判定します。 |
boolean |
contains(double x,
double y,
double w,
double h)
Shape の内部領域が、指定された矩形領域を完全に包含するかどうかを判定します。 |
boolean |
contains(Point2D p)
指定された Point2D が Shape の境界内にあるかどうかを判定します。 |
boolean |
contains(Rectangle2D r)
Shape の内部が、指定された Rectangle2D を完全に内包するかどうかを判定します。 |
Area |
createTransformedArea(AffineTransform t)
指定された AffineTransform によって変換されたこの Area と同じ幾何学的図形を含む、新しい Area オブジェクトを作成します。 |
boolean |
equals(Area other)
2 つの Area オブジェクトの幾何学的図形が等しいかどうかを判定します。 |
void |
exclusiveOr(Area rhs)
この Area の形状を、現在の形状と指定された Area の形状の結合領域からその共通部分を差し引いた領域に設定します。 |
Rectangle |
getBounds()
この Area を完全に囲むバウンディング Rectangle を返します。 |
Rectangle2D |
getBounds2D()
この Area を完全に囲む高精度バウンディング Rectangle2D を返します。 |
PathIterator |
getPathIterator(AffineTransform at)
この Area オブジェクトの輪郭に使う PathIterator を作成します。 |
PathIterator |
getPathIterator(AffineTransform at,
double flatness)
この Area オブジェクトの平坦化した輪郭のための PathIterator を作成します。 |
void |
intersect(Area rhs)
この Area の形状を、現在の形状と指定された Area の形状の共通部分に設定します。 |
boolean |
intersects(double x,
double y,
double w,
double h)
Shape の内部領域が、指定された矩形領域の内部領域と交差するかどうかを判定します。 |
boolean |
intersects(Rectangle2D r)
Shape の内部が、指定された Rectangle2D の内部と交差するかどうかを判定します。 |
boolean |
isEmpty()
この Area オブジェクトが領域を囲むかどうかを判定します。 |
boolean |
isPolygonal()
この Area が完全に、辺が直線の多角形幾何学的図形から構成されているかどうかを判定します。 |
boolean |
isRectangular()
この Area の形状が矩形かどうかを判定します。 |
boolean |
isSingular()
この Area が単一の閉鎖サブパスから構成されているかどうかを判定します。 |
void |
reset()
この Area から幾何学的図形をすべて削除し、空の領域に戻します。 |
void |
subtract(Area rhs)
指定された Area の形状をこの Area の形状から取り去ります。 |
void |
transform(AffineTransform t)
この Area の幾何学的図形を、指定された AffineTransform を使って変換します。 |
クラス java.lang.Object から継承されたメソッド |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
public Area()
public Area(Shape s)
Area
クラスは、指定された Shape
オブジェクトから領域幾何学的図形を作成します。Shape
が閉じていなければ、幾何学的図形は明示的に閉じられます。Shape
の幾何学的図形で指定されている塗りつぶし規則 (偶奇または屈曲) を使うと、結果として生成される閉じた領域を指定できます。
s
- 領域の作成側の Shape
NullPointerException
- s
が null の場合メソッドの詳細 |
---|
public void add(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.add(a2); a1(before) + a2 = a1(after) ################ ################ ################ ############## ############## ################ ############ ############ ################ ########## ########## ################ ######## ######## ################ ###### ###### ###### ###### #### #### #### #### ## ## ## ##
rhs
- 現在の形状に追加される Area
NullPointerException
- rhs
が null の場合public 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 の場合public 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 の場合public 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 の場合public void reset()
Area
から幾何学的図形をすべて削除し、空の領域に戻します。
public boolean isEmpty()
Area
オブジェクトが領域を囲むかどうかを判定します。
Area
オブジェクトが空の領域を表す場合は true
、そうでない場合は false
public boolean isPolygonal()
Area
が完全に、辺が直線の多角形幾何学的図形から構成されているかどうかを判定します。
Area
の幾何学的図形が完全に線セグメントから構成されている場合は true
、そうでない場合は false
public boolean isRectangular()
Area
の形状が矩形かどうかを判定します。
Area
の幾何学的図形の形状が矩形の場合は true
、そうでない場合は false
public boolean isSingular()
Area
が単一の閉鎖サブパスから構成されているかどうかを判定します。このメソッドは、パスがサブパスを 0 または 1 つ含む場合は true
、パスが 2 つ以上のサブパスを含む場合は false
を返します。サブパスは、パスに現れる SEG_MOVETO
セグメントの数によって数えられます。
Area
が 1 つの基本幾何学的図形から構成されている場合は true
、そうでない場合は false
public Rectangle2D getBounds2D()
Area
を完全に囲む高精度バウンディング Rectangle2D
を返します。
Area クラスはその Shape にできるだけぴったりしたバウンディングボックスを返そうとします。バウンディングボックスは Shape の輪郭のカーブの制御点を含むようにはパディングされず、輪郭自体の実際の幾何学的図形にぴったりの大きさになります。
Shape
内の getBounds2D
Area
のバウンディング Rectangle2D
Shape.getBounds()
public Rectangle getBounds()
Area
を完全に囲むバウンディング Rectangle
を返します。
Area クラスはその Shape にできるだけぴったりしたバウンディングボックスを返そうとします。バウンディングボックスは Shape の輪郭のカーブの制御点を含むようにはパディングされず、輪郭自体の実際の幾何学的図形にぴったりの大きさになります。返されたオブジェクトは整数でバウンディングボックスを表すので、バウンディングボックスは、Shape の幾何学的図形を取り囲むもっとも近い整数座標というレベルでの一致になります。
Shape
内の getBounds
Area
のバウンディング Rectangle
Shape.getBounds2D()
public Object clone()
Area
オブジェクトとまったく同じコピーを返します。
Object
内の clone
Cloneable
public boolean equals(Area other)
Area
オブジェクトの幾何学的図形が等しいかどうかを判定します。引数が null の場合、このメソッドは false を返します。
other
- この Area
と比較される Area
true
、それ以外の場合は false
public void transform(AffineTransform t)
Area
の幾何学的図形を、指定された AffineTransform
を使って変換します。幾何学的図形が適切に変換され、これにより、このオブジェクトによって定義されている閉じた領域が永久的に変更されます。
t
- 領域を変換するのに使う変換
NullPointerException
- t
が null の場合public Area createTransformedArea(AffineTransform t)
AffineTransform
によって変換されたこの Area
と同じ幾何学的図形を含む、新しい Area
オブジェクトを作成します。この Area
オブジェクトは変化しません。
t
- 新しい Area
の変換に使う、指定された AffineTransform
Area
オブジェクト
NullPointerException
- t
が null の場合public boolean contains(double x, double y)
Shape
の境界内にあるかどうかを判定します。
Shape
内の contains
x
- 判定対象の指定された X 座標y
- 判定対象の指定された Y 座標
Shape
の境界内にある場合は true
、そうでない場合は false
public boolean contains(Point2D p)
Point2D
が Shape
の境界内にあるかどうかを判定します。
Shape
内の contains
p
- 判定対象の、指定された Point2D
Point2D
が Shape
の境界内にある場合は true
、そうでない場合は false
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
内の contains
x
- 指定された矩形領域の左上隅の X 座標y
- 指定された矩形領域の左上隅の Y 座標w
- 指定された矩形領域の幅h
- 指定された矩形領域の高さ
Shape
の内部領域が、指定された矩形領域を完全に包含する場合は true
、そうでない場合は false
。また、Shape
が矩形領域を包含し、intersects
メソッドが true
を返し、負荷が大き過ぎて包含の計算が行えない場合も false
Area
,
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
内の contains
r
- 指定された Rectangle2D
Shape
の内部領域が、Rectangle2D
を完全に包含する場合は true
、そうでない場合は false
。また、Shape
が Rectangle2D
を包含し、intersects
メソッドが true
を返し、負荷が大き過ぎて包含の計算が行えない場合も false
Shape.contains(double, double, double, double)
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
内の intersects
x
- 指定された矩形領域の左上隅の X 座標y
- 指定された矩形領域の左上隅の Y 座標w
- 指定された矩形領域の幅h
- 指定された矩形領域の高さ
Shape
の内部領域と矩形領域の内部領域が交差する場合、または交差する可能性が高いが、負荷が大き過ぎて共通部分の計算を行えない場合は true
、そうでない場合は false
Area
public boolean intersects(Rectangle2D r)
Shape
の内部が、指定された Rectangle2D
の内部と交差するかどうかを判定します。Shape.intersects()
メソッドを使用すると、次のような場合に Shape
実装は true
を返すことがあります。
Rectangle2D
と Shape
が交差する可能性が高いが、
Shape
によっては、Rectangle2D
が Shape
と交差しない場合でもこのメソッドが true
を返すことがあります。Area
クラスは、ほとんどの Shape
オブジェクトの幾何学的な共通部分のより精密な計算を行うため、より正確な結果が必要な場合に使用できます。
Shape
内の intersects
r
- 指定された Rectangle2D
Shape
の内部領域と指定された Rectangle2D
の内部領域が交差する場合、または交差する可能性が高いが、負荷が大き過ぎて共通部分の計算を行えない場合は true
、そうでない場合は false
Shape.intersects(double, double, double, double)
public PathIterator getPathIterator(AffineTransform at)
Area
オブジェクトの輪郭に使う PathIterator
を作成します。この Area
オブジェクトは変化しません。
Shape
内の getPathIterator
at
- 繰り返し処理で返されるときに座標に適用されるオプションの AffineTransform
、変換されていない座標が必要な場合は null
Area
の輪郭の幾何学的図形を一度に 1 セグメントずつ返す PathIterator
オブジェクトpublic PathIterator getPathIterator(AffineTransform at, double flatness)
Area
オブジェクトの平坦化した輪郭のための PathIterator
を作成します。SEG_MOVETO、SEG_LINETO、SEG_CLOSE の 3 種類の点によって表現される曲線状でないパスセグメントだけが、反復子によって返されます。この Area
オブジェクトは変化しません。
Shape
内の getPathIterator
at
- 繰り返し処理で返されるときに座標に適用されるオプションの AffineTransform
、変換されていない座標が必要な場合は null
flatness
- 分割された曲線が終点を結ぶ直線によって置換される前に、指定された曲線の制御点が共線から外れることのできる最大距離
Area
の輪郭の幾何学的図形を一度に 1 セグメントずつ返す PathIterator
オブジェクト
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。