public abstract class Rectangle2D extends RectangularShape
Rectangle2D
クラスは、位置 (x,y)
およびサイズ (w x h)
で定義される矩形を記述します。
このクラスは、2D 矩形を格納するすべてのオブジェクトの抽象スーパークラスにすぎません。座標の実際の記憶域表現はサブクラスに委ねられます。
修飾子と型 | クラスと説明 |
---|---|
static class |
Rectangle2D.Double
Double クラスは、double 座標で指定される矩形を定義します。 |
static class |
Rectangle2D.Float
Float クラスは、float 座標で指定される矩形を定義します。 |
修飾子と型 | フィールドと説明 |
---|---|
static int |
OUT_BOTTOM
点がこの
Rectangle2D の下にあることを示すビットマスクです。 |
static int |
OUT_LEFT
点がこの
Rectangle2D の左にあることを示すビットマスクです。 |
static int |
OUT_RIGHT
点がこの
Rectangle2D の右にあることを示すビットマスクです。 |
static int |
OUT_TOP
点がこの
Rectangle2D の上にあることを示すビットマスクです。 |
修飾子 | コンストラクタと説明 |
---|---|
protected |
Rectangle2D()
これは、インスタンスを直接には生成できない abstract クラスです。
|
修飾子と型 | メソッドと説明 |
---|---|
void |
add(double newx, double newy)
倍精度の
newx 引数および newy 引数で指定された点をこの Rectangle2D に追加します。 |
void |
add(Point2D pt)
Point2D オブジェクト pt をこの Rectangle2D に追加します。 |
void |
add(Rectangle2D r)
Rectangle2D オブジェクトをこの Rectangle2D に追加します。 |
boolean |
contains(double x, double y)
指定された座標が、内側の定義によって記述された
Shape の境界の内側にあるかどうかをテストします。 |
boolean |
contains(double x, double y, double w, double h)
Shape の内部に、指定された矩形領域が完全に含まれるかどうかをテストします。 |
abstract Rectangle2D |
createIntersection(Rectangle2D r)
この
Rectangle2D と指定された Rectangle2D の共通部分を表す新しい Rectangle2D オブジェクトを返します。 |
abstract Rectangle2D |
createUnion(Rectangle2D r)
この
Rectangle2D と指定された Rectangle2D の和集合を表す新しい Rectangle2D オブジェクトを返します。 |
boolean |
equals(Object obj)
指定された
Object がこの Rectangle2D と等しいかどうかを判定します。 |
Rectangle2D |
getBounds2D()
高精度で、かつ
getBounds メソッドより正確な Shape のバウンディングボックスを返します。 |
PathIterator |
getPathIterator(AffineTransform at)
この
Rectangle2D の境界を定義する反復オブジェクトを返します。 |
PathIterator |
getPathIterator(AffineTransform at, double flatness)
平坦化された
Rectangle2D の境界を定義する反復オブジェクトを返します。 |
int |
hashCode()
この
Rectangle2D のハッシュコードを返します。 |
static void |
intersect(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
指定された元の
Rectangle2D オブジェクトのペアの共通部分をとり、その結果を指定された転送先 Rectangle2D オブジェクトに格納します。 |
boolean |
intersects(double x, double y, double w, double h)
Shape の内部が指定された矩形領域の内部と交差しているかどうかをテストします。 |
boolean |
intersectsLine(double x1, double y1, double x2, double y2)
指定されたラインセグメントが、この
Rectangle2D の内部と交差するかどうかを判定します。 |
boolean |
intersectsLine(Line2D l)
指定されたラインセグメントが、この
Rectangle2D の内部と交差するかどうかを判定します。 |
abstract int |
outcode(double x, double y)
この
Rectangle2D を基準に、指定された座標がある場所を判定します。 |
int |
outcode(Point2D p)
この
Rectangle2D を基準に、指定された Point2D がある場所を判定します。 |
void |
setFrame(double x, double y, double w, double h)
この
Rectangle2D の外部境界の位置およびサイズを、指定された矩形値に設定します。 |
abstract void |
setRect(double x, double y, double w, double h)
この
Rectangle2D の位置およびサイズを、指定された double 型の値に設定します。 |
void |
setRect(Rectangle2D r)
この
Rectangle2D を、指定された Rectangle2D と同じになるように設定します。 |
static void |
union(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
元の
Rectangle2D オブジェクトのペアを結合し、その結果を指定された転送先 Rectangle2D オブジェクトに格納します。 |
clone, contains, contains, getBounds, getCenterX, getCenterY, getFrame, getHeight, getMaxX, getMaxY, getMinX, getMinY, getWidth, getX, getY, intersects, isEmpty, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonal
public static final int OUT_LEFT
Rectangle2D
の左にあることを示すビットマスクです。public static final int OUT_TOP
Rectangle2D
の上にあることを示すビットマスクです。public static final int OUT_RIGHT
Rectangle2D
の右にあることを示すビットマスクです。public static final int OUT_BOTTOM
Rectangle2D
の下にあることを示すビットマスクです。protected Rectangle2D()
Rectangle2D.Float
, Rectangle2D.Double
, Rectangle
public abstract void setRect(double x, double y, double w, double h)
Rectangle2D
の位置およびサイズを、指定された double
型の値に設定します。x
- 次に対する左上隅の X 座標: Rectangle2D
y
- 次に対する左上隅の Y 座標: Rectangle2D
w
- 次に対する幅: Rectangle2D
h
- 次に対する高さ: Rectangle2D
public void setRect(Rectangle2D r)
Rectangle2D
を、指定された Rectangle2D
と同じになるように設定します。r
- 指定されたRectangle2D
public boolean intersectsLine(double x1, double y1, double x2, double y2)
Rectangle2D
の内部と交差するかどうかを判定します。x1
- 指定されたラインセグメントの始点の X 座標y1
- 指定されたラインセグメントの始点の Y 座標x2
- 指定されたラインセグメントの終点の X 座標y2
- 指定されたラインセグメントの終点の Y 座標Rectangle2D
の内部と交差する場合は true
。それ以外の場合は false
。public boolean intersectsLine(Line2D l)
Rectangle2D
の内部と交差するかどうかを判定します。l
- この Rectangle2D
の内部と交差するかどうかをテストする、指定された Line2D
Line2D
がこの Rectangle2D
の内部と交差する場合は true
。それ以外の場合は false
。public abstract int outcode(double x, double y)
Rectangle2D
を基準に、指定された座標がある場所を判定します。このメソッドは、この Rectangle2D
の各辺について、指定された座標がこの Rectangle2D
のほかの辺と同じサイドにあるかどうかを示す適切なマスク値の 2 項論理和を計算します。x
- 指定された X 座標y
- 指定された Y 座標OUT_LEFT
, OUT_TOP
, OUT_RIGHT
, OUT_BOTTOM
public int outcode(Point2D p)
Rectangle2D
を基準に、指定された Point2D
がある場所を判定します。このメソッドは、この Rectangle2D
の各辺について、指定された Point2D
がこの Rectangle2D
のほかの辺と同じサイドにあるかどうかを示す適切なマスク値の 2 項論理和を計算します。p
- 指定された Point2D
OUT_LEFT
, OUT_TOP
, OUT_RIGHT
, OUT_BOTTOM
public void setFrame(double x, double y, double w, double h)
Rectangle2D
の外部境界の位置およびサイズを、指定された矩形値に設定します。setFrame
、クラス: RectangularShape
x
- 次に対する左上隅の X 座標: Rectangle2D
y
- 次に対する左上隅の Y 座標: Rectangle2D
w
- 次に対する幅: Rectangle2D
h
- 次に対する高さ: Rectangle2D
RectangularShape.getFrame()
public 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)
Shape
の高精度のバウンディングボックスである Rectangle2D
のインスタンス。Shape.getBounds()
public boolean contains(double x, double y)
Shape
の境界の内側にあるかどうかをテストします。x
- テストされる指定された X 座標y
- テストされる指定された Y 座標Shape
境界の内側にある場合は true
、それ以外の場合は false
。public boolean intersects(double x, double y, double w, double h)
Shape
の内部が指定された矩形領域の内部と交差しているかどうかをテストします。Shape
の内部と指定された矩形領域の両方に含まれている点が存在する場合、その矩形領域は Shape
と交差していると見なされます。
Shape.intersects()
メソッドを使用すると、次のような場合に、Shape
実装は内部的に true
を返すことができます。
Shape
が交差している可能性が高いが、
Shapes
によっては、矩形領域が Shape
と交差していない場合でもこのメソッドが true
を返すことがあります。Area
クラスは、ほとんどの Shape
オブジェクトより正確な、幾何学的な共通部分の計算を実行するため、より的確な答えが必要な場合に使用できます。x
- 指定された矩形領域の左上隅の X 座標y
- 指定された矩形領域の左上隅の Y 座標w
- 指定された矩形領域の幅h
- 指定された矩形領域の高さShape
の内部と矩形領域の内部が交差しているか、またはどちらも交差している可能性が高いが、負荷が大きすぎて共通部分の計算を実行できない場合は true
、それ以外の場合は false
。Area
public 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
オブジェクトより正確な幾何学的計算を実行するため、より的確な答えが必要な場合に使用できます。x
- 指定された矩形領域の左上隅の X 座標y
- 指定された矩形領域の左上隅の Y 座標w
- 指定された矩形領域の幅h
- 指定された矩形領域の高さShape
の内部に、指定された矩形領域が完全に含まれる場合は true
、それ以外の場合、または Shape
に矩形領域が含まれ、intersects
メソッドが true
を返し、さらに負荷が大きすぎて包含の計算を実行できない場合は false
。Area
、Shape.intersects(double, double, double, double)
public abstract Rectangle2D createIntersection(Rectangle2D r)
Rectangle2D
と指定された Rectangle2D
の共通部分を表す新しい Rectangle2D
オブジェクトを返します。r
- この Rectangle2D
と交差させる Rectangle2D
Rectangle2D
とこの Rectangle2D
の両方に含まれる最大の Rectangle2D
。public static void intersect(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
Rectangle2D
オブジェクトのペアの共通部分をとり、その結果を指定された転送先 Rectangle2D
オブジェクトに格納します。元の矩形の 1 つを転送先にして、3 番目の Rectangle2D オブジェクトを作成しないようにすることもできますが、その場合、元の矩形の元の点はこのメソッドで上書きされます。src1
- 互いに交差させる Rectangle2D
オブジェクトの最初のペアsrc2
- 互いに交差させる Rectangle2D
オブジェクトの 2 番目のペアdest
- src1
と src2
の共通部分の結果を保持する Rectangle2D
public abstract Rectangle2D createUnion(Rectangle2D r)
Rectangle2D
と指定された Rectangle2D
の和集合を表す新しい Rectangle2D
オブジェクトを返します。r
- この Rectangle2D
と結合される Rectangle2D
Rectangle2D
とこの Rectangle2D
の両方を含む最小の Rectangle2D
。public static void union(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
Rectangle2D
オブジェクトのペアを結合し、その結果を指定された転送先 Rectangle2D
オブジェクトに格納します。元の矩形の 1 つを転送先にして、3 番目の Rectangle2D オブジェクトを作成しないようにすることもできますが、その場合、元の矩形の元の点はこのメソッドで上書きされます。src1
- 互いに結合させる Rectangle2D
オブジェクトの最初のペアsrc2
- 互いに結合させる Rectangle2D
オブジェクトの 2 番目のペアdest
- src1
と src2
の和集合の結果を保持する Rectangle2D
public void add(double newx, double newy)
newx
引数および newy
引数で指定された点をこの Rectangle2D
に追加します。結果として得られる Rectangle2D
は、元の Rectangle2D
と指定された点の両方を含む最小の Rectangle2D
です。
点を追加したあと、追加された点を引数とする contains
の呼び出しは、必ずしも true
を返しません。contains
メソッドは、矩形の右端または下端にある点については true
を返しません。そのため、追加された点が拡大された矩形の左端または下端にある場合、contains
はその点について false
を返します。
newx
- 新しい点の X 座標newy
- 新しい点の Y 座標public void add(Point2D pt)
Point2D
オブジェクト pt
をこの Rectangle2D
に追加します。結果として得られる Rectangle2D
は、元の Rectangle2D
と指定された Point2D
の両方を含む最小の Rectangle2D
です。
点を追加したあと、追加された点を引数とする contains
の呼び出しは、必ずしも true
を返しません。contains
メソッドは、矩形の右端または下端にある点については true
を返しません。そのため、追加された点が拡大された矩形の左端または下端にある場合、contains
はその点について false
を返します。
pt
- この Rectangle2D
に追加する新しい Point2D
。public void add(Rectangle2D r)
Rectangle2D
オブジェクトをこの Rectangle2D
に追加します。結果として得られる Rectangle2D
は、2 つの Rectangle2D
オブジェクトの和集合です。r
- この Rectangle2D
に追加する Rectangle2D
。public PathIterator getPathIterator(AffineTransform at)
Rectangle2D
の境界を定義する反復オブジェクトを返します。このクラスのイテレータは、マルチスレッドに対して安全です。つまりこの Rectangle2D
クラスは、この Rectangle2D
オブジェクトの幾何学的図形に対する変更が、幾何学的図形についてすでに進行中の反復処理に影響を与えないことを保証します。at
- 反復処理で返されるときに座標に適用されるオプションの AffineTransform
、または変換されていない座標が必要な場合は null
Rectangle2D
の輪郭の幾何学的図形を一度に 1 セグメントずつ返す PathIterator
オブジェクト。public PathIterator getPathIterator(AffineTransform at, double flatness)
Rectangle2D
の境界を定義する反復オブジェクトを返します。矩形はすでに平坦であるため、flatness
パラメータは無視される。このクラスのイテレータは、マルチスレッドに対して安全です。つまりこの Rectangle2D
クラスは、この Rectangle2D
オブジェクトの幾何学的図形に対する変更が、幾何学的図形についてすでに進行中の反復処理に影響を与えないことを保証します。getPathIterator
、インタフェース: Shape
getPathIterator
、クラス: RectangularShape
at
- 反復処理で返されるときに座標に適用されるオプションの AffineTransform
、または変換されていない座標が必要な場合は null
flatness
- 曲線セグメントを近似するために使用されるラインセグメントが、元の曲線上の任意の点から離れることができる最大の距離。矩形はすでに平坦であるため、flatness
パラメータは無視される。Rectangle2D
の輪郭の幾何学的図形を一度に 1 セグメントずつ返す PathIterator
オブジェクト。public int hashCode()
Rectangle2D
のハッシュコードを返します。hashCode
、クラス: Object
Rectangle2D
のハッシュコード。Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public boolean equals(Object obj)
Object
がこの Rectangle2D
と等しいかどうかを判定します。指定された Object
は、Rectangle2D
のインスタンスであり、位置およびサイズがこの Rectangle2D
と同じ場合に、この Rectangle2D
と等しいと見なされます。equals
、クラス: Object
obj
- この Rectangle2D
と比較される Object
。obj
が Rectangle2D
のインスタンスであり、同じ値を持つ場合は true
、そうでない場合は false
。Object.hashCode()
、HashMap
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.