モジュール java.desktop
パッケージ java.awt.geom

クラスRectangle2D

  • すべての実装されたインタフェース:
    Shape, Cloneable
    直系の既知のサブクラス:
    Rectangle, Rectangle2D.Double, Rectangle2D.Float

    public abstract class Rectangle2D
    extends RectangularShape
    Rectangle2Dクラスは、位置(x,y)およびサイズ(w x h)で定義される矩形を記述します。

    このクラスは、2D矩形を格納するすべてのオブジェクトの抽象スーパー・クラスにすぎません。 座標の実際の記憶域表現はサブクラスに委ねられます。

    導入されたバージョン:
    1.2
    • ネストされたクラスのサマリー

      ネストされたクラス 
      修飾子と型 クラス 説明
      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()
      これは、インスタンスを直接には生成できない抽象クラスです。
    • メソッドのサマリー

      修飾子と型 メソッド 説明
      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オブジェクトに格納します。
    • フィールドの詳細

      • OUT_LEFT

        public static final int OUT_LEFT
        点がこのRectangle2Dの左にあることを示すビット・マスクです。
        導入されたバージョン:
        1.2
        関連項目:
        定数フィールド値
      • OUT_TOP

        public static final int OUT_TOP
        点がこのRectangle2Dの上にあることを示すビット・マスクです。
        導入されたバージョン:
        1.2
        関連項目:
        定数フィールド値
      • OUT_RIGHT

        public static final int OUT_RIGHT
        点がこのRectangle2Dの右にあることを示すビット・マスクです。
        導入されたバージョン:
        1.2
        関連項目:
        定数フィールド値
      • OUT_BOTTOM

        public static final int OUT_BOTTOM
        点がこのRectangle2Dの下にあることを示すビット・マスクです。
        導入されたバージョン:
        1.2
        関連項目:
        定数フィールド値
    • コンストラクタの詳細

      • Rectangle2D

        protected Rectangle2D()
        これは、インスタンスを直接には生成できない抽象クラスです。 インスタンス生成のためには型固有の実装サブクラスが用意されており、これらのサブクラスにより、下記の各種アクセス用メソッドに必要な情報を格納するための形式が多数提供されます。
        導入されたバージョン:
        1.2
        関連項目:
        Rectangle2D.Float, Rectangle2D.Double, Rectangle
    • メソッドの詳細

      • setRect

        public abstract void setRect​(double x,
                                     double y,
                                     double w,
                                     double h)
        このRectangle2Dの位置およびサイズを、指定されたdouble型の値に設定します。
        パラメータ:
        x - 次に対する左上隅のX座標: Rectangle2D
        y - 次に対する左上隅のY座標: Rectangle2D
        w - 次に対する幅: Rectangle2D
        h - 次に対する高さ: Rectangle2D
        導入されたバージョン:
        1.2
      • setRect

        public void setRect​(Rectangle2D r)
        このRectangle2Dを、指定されたRectangle2Dと同じになるように設定します。
        パラメータ:
        r - 指定されたRectangle2D
        導入されたバージョン:
        1.2
      • intersectsLine

        public boolean intersectsLine​(double x1,
                                      double y1,
                                      double x2,
                                      double y2)
        指定されたライン・セグメントが、このRectangle2Dの内部と交差するかどうかを判定します。
        パラメータ:
        x1 - 指定されたライン・セグメントの始点のX座標
        y1 - 指定されたライン・セグメントの始点のY座標
        x2 - 指定されたライン・セグメントの終点のX座標
        y2 - 指定されたライン・セグメントの終点のY座標
        戻り値:
        指定されたライン・セグメントがこのRectangle2Dの内部と交差する場合はtrue。それ以外の場合はfalse
        導入されたバージョン:
        1.2
      • intersectsLine

        public boolean intersectsLine​(Line2D l)
        指定されたライン・セグメントが、このRectangle2Dの内部と交差するかどうかを判定します。
        パラメータ:
        l - このRectangle2Dの内部と交差するかどうかをテストする、指定されたLine2D
        戻り値:
        指定されたLine2DがこのRectangle2Dの内部と交差する場合はtrue。それ以外の場合はfalse
        導入されたバージョン:
        1.2
      • outcode

        public abstract int outcode​(double x,
                                    double y)
        このRectangle2Dを基準に、指定された座標がある場所を判定します。 このメソッドは、このRectangle2Dの各辺について、指定された座標がこのRectangle2Dのほかの辺と同じサイドにあるかどうかを示す適切なマスク値の2項論理和を計算します。
        パラメータ:
        x - 指定されたX座標
        y - 指定されたY座標
        戻り値:
        すべての適切なOUTコードの論理和。
        導入されたバージョン:
        1.2
        関連項目:
        OUT_LEFT, OUT_TOP, OUT_RIGHT, OUT_BOTTOM
      • outcode

        public int outcode​(Point2D p)
        このRectangle2Dを基準に、指定されたPoint2Dがある場所を判定します。 このメソッドは、このRectangle2Dの各辺について、指定されたPoint2DがこのRectangle2Dのほかの辺と同じサイドにあるかどうかを示す適切なマスク値の2項論理和を計算します。
        パラメータ:
        p - 指定されたPoint2D
        戻り値:
        すべての適切なOUTコードの論理和。
        導入されたバージョン:
        1.2
        関連項目:
        OUT_LEFT, OUT_TOP, OUT_RIGHT, OUT_BOTTOM
      • setFrame

        public void setFrame​(double x,
                             double y,
                             double w,
                             double h)
        このRectangle2Dの外部境界の位置およびサイズを、指定された矩形値に設定します。
        定義:
        setFrame、クラス: RectangularShape
        パラメータ:
        x - 次に対する左上隅のX座標: Rectangle2D
        y - 次に対する左上隅のY座標: Rectangle2D
        w - 次に対する幅: Rectangle2D
        h - 次に対する高さ: Rectangle2D
        導入されたバージョン:
        1.2
        関連項目:
        RectangularShape.getFrame()
      • getBounds2D

        public Rectangle2D getBounds2D()
        高精度で、かつgetBoundsメソッドより正確なShapeのバウンディング・ボックスを返します。 返されたRectangle2Dが、Shapeを囲む最小のバウンディング・ボックスであるという保証はありません。Shapeが、示されたRectangle2D内に完全に含まれているだけです。 戻り値を、倍精度値を使用して寸法を格納するRectangle2Dのインスタンスにすることができるため、このメソッドによって返されたバウンディング・ボックスは通常、getBoundsメソッドによって返されたものより厳密であり、オーバーフローの問題のために失敗することはありません。

        内側の定義によって、shapeの定義する輪郭上の点が、返されたboundsオブジェクトに含まれていると見なされない状況が発生する場合があります。ただし、これは、これらの点が元のshapeにも含まれていないと見なされる場合のみです。

        pointcontains(point)メソッドに従ってshapeの内側にある場合は、boundscontains(point)メソッドに従って、返されたRectangle2D境界オブジェクトの内側にある必要があります。 具体的には、次のようになります。

        shape.contains(p)には次が必要: bounds.contains(p)

        pointshapeの内側にない場合は、引き続きboundsオブジェクトに含まれている可能性があります。

        bounds.contains(p)は次を示さない: shape.contains(p)

        戻り値:
        Shapeの高精度のバウンディング・ボックスであるRectangle2Dのインスタンス。
        導入されたバージョン:
        1.2
        関連項目:
        Shape.getBounds()
      • contains

        public boolean contains​(double x,
                                double y)
        指定された座標が、内側の定義によって記述されたShapeの境界の内側にあるかどうかをテストします。
        パラメータ:
        x - テストされる指定されたX座標
        y - テストされる指定されたY座標
        戻り値:
        指定された座標がShape境界の内側にある場合はtrue、それ以外の場合はfalse
        導入されたバージョン:
        1.2
      • intersects

        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
        導入されたバージョン:
        1.2
        関連項目:
        Area
      • contains

        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
        導入されたバージョン:
        1.2
        関連項目:
        AreaShape.intersects(double, double, double, double)
      • createIntersection

        public abstract Rectangle2D createIntersection​(Rectangle2D r)
        このRectangle2Dと指定されたRectangle2Dの共通部分を表す新しいRectangle2Dオブジェクトを返します。
        パラメータ:
        r - このRectangle2Dと交差させるRectangle2D
        戻り値:
        指定されたRectangle2DとこのRectangle2Dの両方に含まれる最大のRectangle2D
        導入されたバージョン:
        1.2
      • intersect

        public static void intersect​(Rectangle2D src1,
                                     Rectangle2D src2,
                                     Rectangle2D dest)
        指定された元のRectangle2Dオブジェクトのペアの共通部分をとり、その結果を指定された転送先Rectangle2Dオブジェクトに格納します。 元の矩形の1つを転送先にして、3番目のRectangle2Dオブジェクトを作成しないようにすることもできますが、その場合、元の矩形の元の点はこのメソッドで上書きされます。
        パラメータ:
        src1 - 互いに交差させるRectangle2Dオブジェクトの最初のペア
        src2 - 互いに交差させるRectangle2Dオブジェクトの2番目のペア
        dest - src1src2の共通部分の結果を保持するRectangle2D
        導入されたバージョン:
        1.2
      • createUnion

        public abstract Rectangle2D createUnion​(Rectangle2D r)
        このRectangle2Dと指定されたRectangle2Dの和集合を表す新しいRectangle2Dオブジェクトを返します。
        パラメータ:
        r - このRectangle2Dと結合されるRectangle2D
        戻り値:
        指定されたRectangle2DとこのRectangle2Dの両方を含む最小のRectangle2D
        導入されたバージョン:
        1.2
      • union

        public static void union​(Rectangle2D src1,
                                 Rectangle2D src2,
                                 Rectangle2D dest)
        元のRectangle2Dオブジェクトのペアを結合し、その結果を指定された転送先Rectangle2Dオブジェクトに格納します。 元の矩形の1つを転送先にして、3番目のRectangle2Dオブジェクトを作成しないようにすることもできますが、その場合、元の矩形の元の点はこのメソッドで上書きされます。
        パラメータ:
        src1 - 互いに結合させるRectangle2Dオブジェクトの最初のペア
        src2 - 互いに結合させるRectangle2Dオブジェクトの2番目のペア
        dest - src1src2の和集合の結果を保持するRectangle2D
        導入されたバージョン:
        1.2
      • add

        public void add​(double newx,
                        double newy)
        倍精度のnewx引数およびnewy引数で指定された点をこのRectangle2Dに追加します。 結果として得られるRectangle2Dは、元のRectangle2Dと指定された点の両方を含む最小のRectangle2Dです。

        点を追加したあと、追加された点を引数とするcontainsの呼出しは、必ずしもtrueを返しません。 containsメソッドは、矩形の右端または下端にある点についてはtrueを返しません。 そのため、追加された点が拡大された矩形の左端または下端にある場合、containsはその点についてfalseを返します。

        パラメータ:
        newx - 新しい点のX座標
        newy - 新しい点のY座標
        導入されたバージョン:
        1.2
      • add

        public void add​(Point2D pt)
        Point2DオブジェクトptをこのRectangle2Dに追加します。 結果として得られるRectangle2Dは、元のRectangle2Dと指定されたPoint2Dの両方を含む最小のRectangle2Dです。

        点を追加したあと、追加された点を引数とするcontainsの呼出しは、必ずしもtrueを返しません。 containsメソッドは、矩形の右端または下端にある点についてはtrueを返しません。 そのため、追加された点が拡大された矩形の左端または下端にある場合、containsはその点についてfalseを返します。

        パラメータ:
        pt - このRectangle2Dに追加する新しいPoint2D
        導入されたバージョン:
        1.2
      • add

        public void add​(Rectangle2D r)
        Rectangle2DオブジェクトをこのRectangle2Dに追加します。 結果として得られるRectangle2Dは、2つのRectangle2Dオブジェクトの和集合です。
        パラメータ:
        r - このRectangle2Dに追加するRectangle2D
        導入されたバージョン:
        1.2
      • getPathIterator

        public PathIterator getPathIterator​(AffineTransform at)
        このRectangle2Dの境界を定義する反復オブジェクトを返します。 このクラスのイテレータは、マルチ・スレッドに対して安全です。つまりこのRectangle2Dクラスは、このRectangle2Dオブジェクトの幾何学的図形に対する変更が、幾何学的図形についてすでに進行中の反復処理に影響を与えないことを保証します。
        パラメータ:
        at - 反復処理で返されるときに座標に適用されるオプションのAffineTransform、または変換されていない座標が必要な場合はnull
        戻り値:
        このRectangle2Dの輪郭の幾何学的図形を一度に1セグメントずつ返すPathIteratorオブジェクト。
        導入されたバージョン:
        1.2
      • getPathIterator

        public PathIterator getPathIterator​(AffineTransform at,
                                            double flatness)
        平坦化されたRectangle2Dの境界を定義する反復オブジェクトを返します。 矩形はすでに平坦であるため、flatnessパラメータは無視される。 このクラスのイテレータは、マルチ・スレッドに対して安全です。つまりこのRectangle2Dクラスは、このRectangle2Dオブジェクトの幾何学的図形に対する変更が、幾何学的図形についてすでに進行中の反復処理に影響を与えないことを保証します。
        定義:
        getPathIterator、インタフェース: Shape
        オーバーライド:
        getPathIterator、クラス: RectangularShape
        パラメータ:
        at - 反復処理で返されるときに座標に適用されるオプションのAffineTransform、または変換されていない座標が必要な場合はnull
        flatness - 曲線セグメントを近似するために使用されるライン・セグメントが、元の曲線上の任意の点から離れることができる最大の距離。 矩形はすでに平坦であるため、flatnessパラメータは無視される。
        戻り値:
        このRectangle2Dの輪郭の幾何学的図形を一度に1セグメントずつ返すPathIteratorオブジェクト。
        導入されたバージョン:
        1.2
      • equals

        public boolean equals​(Object obj)
        指定されたObjectがこのRectangle2Dと等しいかどうかを判定します。 指定されたObjectは、Rectangle2Dのインスタンスであり、位置およびサイズがこのRectangle2Dと同じ場合に、このRectangle2Dと等しいと見なされます。
        オーバーライド:
        equals 、クラス:  Object
        パラメータ:
        obj - このRectangle2Dと比較されるObject
        戻り値:
        objRectangle2Dのインスタンスであり、同じ値を持つ場合はtrue、そうでない場合はfalse
        導入されたバージョン:
        1.2
        関連項目:
        Object.hashCode()HashMap