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

クラスCubicCurve2D

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

    public abstract class CubicCurve2D
    extends Object
    implements Shape, Cloneable
    CubicCurve2Dクラスは、(x,y)座標空間の3次パラメトリック曲線セグメントを定義します。

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

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

      ネストされたクラス 
      修飾子と型 クラス 説明
      static class  CubicCurve2D.Double
      double座標で指定された3次パラメトリック曲線セグメント。
      static class  CubicCurve2D.Float
      float座標で指定された3次パラメトリック曲線セグメント。
    • コンストラクタのサマリー

      コンストラクタ 
      修飾子 コンストラクタ 説明
      protected CubicCurve2D()
      これは、インスタンスを直接には生成できない抽象クラスです。
    • メソッドのサマリー

      すべてのメソッド staticメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      Object clone()
      このオブジェクトと同じクラスの新しいオブジェクトを作成します。
      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が完全に含まれるかどうかをテストします。
      Rectangle getBounds()
      Shapeを完全に囲む整数のRectangleを返します。
      abstract Point2D getCtrlP1()
      最初の制御点を返します。
      abstract Point2D getCtrlP2()
      2番目の制御点を返します。
      abstract double getCtrlX1()
      最初の制御点のX座標を倍精度で返します。
      abstract double getCtrlX2()
      2番目の制御点のX座標を倍精度で返します。
      abstract double getCtrlY1()
      最初の制御点のY座標を倍精度で返します。
      abstract double getCtrlY2()
      2番目の制御点のY座標を倍精度で返します。
      double getFlatness()
      この曲線のフラットネスを返します。
      static double getFlatness​(double[] coords, int offset)
      指定された配列の、指定されたインデックスに格納された制御点で示される、3次曲線のフラットネスを返します。
      static double getFlatness​(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
      指定された制御点で指定される3次曲線のフラットネスを返します。
      double getFlatnessSq()
      この曲線のフラットネスの2乗を返します。
      static double getFlatnessSq​(double[] coords, int offset)
      指定された配列の、指定されたインデックスに格納された制御点で示される3次曲線のフラットネスの2乗を返します。
      static double getFlatnessSq​(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
      指定された制御点で示される3次曲線のフラットネスの2乗を返します。
      abstract Point2D getP1()
      始点を返します。
      abstract Point2D getP2()
      終点を返します。
      PathIterator getPathIterator​(AffineTransform at)
      形状の境界を定義する繰返しオブジェクトを返します。
      PathIterator getPathIterator​(AffineTransform at, double flatness)
      平坦化された形状の境界を定義する繰返しオブジェクトを返します。
      abstract double getX1()
      始点のX座標を倍精度で返します。
      abstract double getX2()
      終点のX座標を倍精度で返します。
      abstract double getY1()
      始点のY座標を倍精度で返します。
      abstract double getY2()
      終点のY座標を倍精度で返します。
      boolean intersects​(double x, double y, double w, double h)
      Shapeの内部が指定された矩形領域の内部と交差しているかどうかをテストします。
      boolean intersects​(Rectangle2D r)
      Shapeの内部が指定されたRectangle2Dの内部と交差しているかどうかをテストします。
      void setCurve​(double[] coords, int offset)
      この曲線の終点と制御点の位置を、指定された配列内の指定されたオフセットにあるdouble座標に設定します。
      abstract void setCurve​(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
      この曲線の終点と制御点の位置を、指定されたdouble座標に設定します。
      void setCurve​(CubicCurve2D c)
      この曲線の終点と制御点の位置を、指定されたCubicCurve2Dのそれらと同じに設定します。
      void setCurve​(Point2D[] pts, int offset)
      指定された配列の指定されたオフセットにあるPoint2Dオブジェクトの座標に、この曲線の終点と制御点の位置を設定します。
      void setCurve​(Point2D p1, Point2D cp1, Point2D cp2, Point2D p2)
      この曲線の終点と制御点の位置を、指定されたPoint2D座標に設定します。
      static int solveCubic​(double[] eqn)
      係数がeqn配列にある3次方程式の解を得て、非複素数解を同じ配列に戻し、結果として解の個数を返します。
      static int solveCubic​(double[] eqn, double[] res)
      係数がeqn配列にある3次方程式の解を得て、非複素数解をres配列に戻し、結果として解の個数を返します。
      static void subdivide​(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff)
      src配列のインデックスsrcoffから(srcoff + 7)に格納されている座標で指定される3次曲線を分割して、分割した2つの曲線を2つの配列の対応するインデックスに格納します。
      void subdivide​(CubicCurve2D left, CubicCurve2D right)
      この3次曲線を分割して、分割した2つの曲線をleftおよびrightの3次曲線パラメータに格納します。
      static void subdivide​(CubicCurve2D src, CubicCurve2D left, CubicCurve2D right)
      srcパラメータで指定された3次曲線を分割して、分割した2つの曲線をleftおよびrightの曲線パラメータに格納します。
    • コンストラクタの詳細

      • CubicCurve2D

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

      • getX1

        public abstract double getX1()
        始点のX座標を倍精度で返します。
        戻り値:
        CubicCurve2Dの始点のX座標。
        導入されたバージョン:
        1.2
      • getY1

        public abstract double getY1()
        始点のY座標を倍精度で返します。
        戻り値:
        CubicCurve2Dの始点のY座標。
        導入されたバージョン:
        1.2
      • getP1

        public abstract Point2D getP1()
        始点を返します。
        戻り値:
        CubicCurve2Dの始点であるPoint2D
        導入されたバージョン:
        1.2
      • getCtrlX1

        public abstract double getCtrlX1()
        最初の制御点のX座標を倍精度で返します。
        戻り値:
        CubicCurve2Dの最初の制御点のX座標。
        導入されたバージョン:
        1.2
      • getCtrlY1

        public abstract double getCtrlY1()
        最初の制御点のY座標を倍精度で返します。
        戻り値:
        CubicCurve2Dの最初の制御点のY座標。
        導入されたバージョン:
        1.2
      • getCtrlP1

        public abstract Point2D getCtrlP1()
        最初の制御点を返します。
        戻り値:
        CubicCurve2Dの最初の制御点であるPoint2D
        導入されたバージョン:
        1.2
      • getCtrlX2

        public abstract double getCtrlX2()
        2番目の制御点のX座標を倍精度で返します。
        戻り値:
        CubicCurve2Dの2番目の制御点のX座標。
        導入されたバージョン:
        1.2
      • getCtrlY2

        public abstract double getCtrlY2()
        2番目の制御点のY座標を倍精度で返します。
        戻り値:
        CubicCurve2Dの2番目の制御点のY座標。
        導入されたバージョン:
        1.2
      • getCtrlP2

        public abstract Point2D getCtrlP2()
        2番目の制御点を返します。
        戻り値:
        CubicCurve2Dの2番目の制御点であるPoint2D
        導入されたバージョン:
        1.2
      • getX2

        public abstract double getX2()
        終点のX座標を倍精度で返します。
        戻り値:
        CubicCurve2Dの終点のX座標。
        導入されたバージョン:
        1.2
      • getY2

        public abstract double getY2()
        終点のY座標を倍精度で返します。
        戻り値:
        CubicCurve2Dの終点のY座標。
        導入されたバージョン:
        1.2
      • getP2

        public abstract Point2D getP2()
        終点を返します。
        戻り値:
        CubicCurve2Dの終点であるPoint2D
        導入されたバージョン:
        1.2
      • setCurve

        public abstract void setCurve​(double x1,
                                      double y1,
                                      double ctrlx1,
                                      double ctrly1,
                                      double ctrlx2,
                                      double ctrly2,
                                      double x2,
                                      double y2)
        この曲線の終点と制御点の位置を、指定されたdouble座標に設定します。
        パラメータ:
        x1 - 次に対する始点を設定するために使用されるX座標: CubicCurve2D
        y1 - 次に対する始点を設定するために使用されるY座標: CubicCurve2D
        ctrlx1 - 次に対する最初の制御点を設定するために使用されるX座標: CubicCurve2D
        ctrly1 - 次に対する最初の制御点を設定するために使用されるY座標: CubicCurve2D
        ctrlx2 - 次に対する2番目の制御点を設定するために使用されるX座標: CubicCurve2D
        ctrly2 - 次に対する2番目の制御点を設定するために使用されるY座標: CubicCurve2D
        x2 - 次に対する終点を設定するために使用されるX座標: CubicCurve2D
        y2 - 次に対する終点を設定するために使用されるY座標: CubicCurve2D
        導入されたバージョン:
        1.2
      • setCurve

        public void setCurve​(double[] coords,
                             int offset)
        この曲線の終点と制御点の位置を、指定された配列内の指定されたオフセットにあるdouble座標に設定します。
        パラメータ:
        coords - 座標を含むdouble配列
        offset - この曲線の終点と制御点の、coordsに含まれている座標への設定を開始する位置を示すcoordsのインデックス
        導入されたバージョン:
        1.2
      • setCurve

        public void setCurve​(Point2D p1,
                             Point2D cp1,
                             Point2D cp2,
                             Point2D p2)
        この曲線の終点と制御点の位置を、指定されたPoint2D座標に設定します。
        パラメータ:
        p1 - この曲線の始点を設定するために使用される、最初に指定されたPoint2D
        cp1 - この曲線の最初の制御点を設定するために使用される、2番目に指定されたPoint2D
        cp2 - この曲線の2番目の制御点を設定するために使用される、3番目に指定されたPoint2D
        p2 - この曲線の終点を設定するために使用される、4番目に指定されたPoint2D
        導入されたバージョン:
        1.2
      • setCurve

        public void setCurve​(Point2D[] pts,
                             int offset)
        指定された配列の指定されたオフセットにあるPoint2Dオブジェクトの座標に、この曲線の終点と制御点の位置を設定します。
        パラメータ:
        pts - Point2Dオブジェクトの配列
        offset - この曲線の終点と制御点の、ptsに含まれている点への設定を開始する位置を示すptsのインデックス
        導入されたバージョン:
        1.2
      • setCurve

        public void setCurve​(CubicCurve2D c)
        この曲線の終点と制御点の位置を、指定されたCubicCurve2Dのそれらと同じに設定します。
        パラメータ:
        c - 指定されたCubicCurve2D
        導入されたバージョン:
        1.2
      • getFlatnessSq

        public static double getFlatnessSq​(double x1,
                                           double y1,
                                           double ctrlx1,
                                           double ctrly1,
                                           double ctrlx2,
                                           double ctrly2,
                                           double x2,
                                           double y2)
        指定された制御点で示される3次曲線のフラットネスの2乗を返します。 フラットネスとは、終点間を結ぶ線から制御点への最大距離です。
        パラメータ:
        x1 - 次に対する始点を指定するX座標: CubicCurve2D
        y1 - 次に対する始点を指定するY座標: CubicCurve2D
        ctrlx1 - 次に対する最初の制御点を指定するX座標: CubicCurve2D
        ctrly1 - 次に対する最初の制御点を指定するY座標: CubicCurve2D
        ctrlx2 - 次に対する2番目の制御点を指定するX座標: CubicCurve2D
        ctrly2 - 次に対する2番目の制御点を指定するY座標: CubicCurve2D
        x2 - 次に対する終点を指定するX座標: CubicCurve2D
        y2 - 次に対する終点を指定するY座標: CubicCurve2D
        戻り値:
        指定された座標によって表されたCubicCurve2Dのフラットネスの2乗。
        導入されたバージョン:
        1.2
      • getFlatness

        public static double getFlatness​(double x1,
                                         double y1,
                                         double ctrlx1,
                                         double ctrly1,
                                         double ctrlx2,
                                         double ctrly2,
                                         double x2,
                                         double y2)
        指定された制御点で指定される3次曲線のフラットネスを返します。 フラットネスとは、終点間を結ぶ線から制御点への最大距離です。
        パラメータ:
        x1 - 次に対する始点を指定するX座標: CubicCurve2D
        y1 - 次に対する始点を指定するY座標: CubicCurve2D
        ctrlx1 - 次に対する最初の制御点を指定するX座標: CubicCurve2D
        ctrly1 - 次に対する最初の制御点を指定するY座標: CubicCurve2D
        ctrlx2 - 次に対する2番目の制御点を指定するX座標: CubicCurve2D
        ctrly2 - 次に対する2番目の制御点を指定するY座標: CubicCurve2D
        x2 - 次に対する終点を指定するX座標: CubicCurve2D
        y2 - 次に対する終点を指定するY座標: CubicCurve2D
        戻り値:
        指定された座標によって表されたCubicCurve2Dのフラットネス。
        導入されたバージョン:
        1.2
      • getFlatnessSq

        public static double getFlatnessSq​(double[] coords,
                                           int offset)
        指定された配列の、指定されたインデックスに格納された制御点で示される3次曲線のフラットネスの2乗を返します。 フラットネスとは、終点間を結ぶ線から制御点への最大距離です。
        パラメータ:
        coords - 座標が格納されている配列
        offset - coordsのインデックス。ここから、曲線の終点と制御点を取得する
        戻り値:
        coords内の指定されたオフセット位置にある座標によって指定されたCubicCurve2Dのフラットネスの2乗。
        導入されたバージョン:
        1.2
      • getFlatness

        public static double getFlatness​(double[] coords,
                                         int offset)
        指定された配列の、指定されたインデックスに格納された制御点で示される、3次曲線のフラットネスを返します。 フラットネスとは、終点間を結ぶ線から制御点への最大距離です。
        パラメータ:
        coords - 座標が格納されている配列
        offset - coordsのインデックス。ここから、曲線の終点と制御点を取得する
        戻り値:
        coords内の指定されたオフセット位置にある座標によって指定されたCubicCurve2Dのフラットネス。
        導入されたバージョン:
        1.2
      • getFlatnessSq

        public double getFlatnessSq()
        この曲線のフラットネスの2乗を返します。 フラットネスとは、終点間を結ぶ線から制御点への最大距離です。
        戻り値:
        この曲線のフラットネスの2乗。
        導入されたバージョン:
        1.2
      • getFlatness

        public double getFlatness()
        この曲線のフラットネスを返します。 フラットネスとは、終点間を結ぶ線から制御点への最大距離です。
        戻り値:
        この曲線のフラットネス。
        導入されたバージョン:
        1.2
      • subdivide

        public void subdivide​(CubicCurve2D left,
                              CubicCurve2D right)
        この3次曲線を分割して、分割した2つの曲線をleftおよびrightの3次曲線パラメータに格納します。 leftオブジェクトとrightオブジェクトのどちらか、または両方とも、このオブジェクトと同じかnullになります。
        パラメータ:
        left - 分割された曲線の左側または最初の半分を格納するための3次曲線オブジェクト
        right - 分割された曲線の右側または残り半分を格納するための3次曲線オブジェクト
        導入されたバージョン:
        1.2
      • subdivide

        public static void subdivide​(CubicCurve2D src,
                                     CubicCurve2D left,
                                     CubicCurve2D right)
        srcパラメータで指定された3次曲線を分割して、分割した2つの曲線をleftおよびrightの曲線パラメータに格納します。 leftオブジェクトとrightオブジェクトのどちらかまたは両方がsrcオブジェクトと同じか、またはnullになることがあります。
        パラメータ:
        src - 分割される3次曲線
        left - 分割された曲線の左側または最初の半分を格納するための3次曲線オブジェクト
        right - 分割された曲線の右側または残り半分を格納するための3次曲線オブジェクト
        導入されたバージョン:
        1.2
      • subdivide

        public static void subdivide​(double[] src,
                                     int srcoff,
                                     double[] left,
                                     int leftoff,
                                     double[] right,
                                     int rightoff)
        src配列のインデックスsrcoffから(srcoff + 7)に格納されている座標で指定される3次曲線を分割して、分割した2つの曲線を2つの配列の対応するインデックスに格納します。 left配列とright配列のどちらかまたは両方がnullか、またはsrc配列と同じ配列への参照になることがあります。 分割された最初の曲線の終点は分割された2番目の曲線の始点と同じです。 そのため、この共通の点に余分なストレージが割り当てられないようにするために、leftright用に同じ配列を渡し、rightoffが(leftoff+6)に等しくなるようにオフセットを使用することができます。
        パラメータ:
        src - 転送元曲線の座標を保持する配列
        srcoff - 6つの転送元座標の先頭の配列へのオフセット
        left - 分割された曲線の最初の半分の座標を格納するための配列
        leftoff - 6つの左座標の先頭の配列へのオフセット
        right - 分割された曲線の残り半分の座標を格納するための配列
        rightoff - 6つの右座標の先頭の配列へのオフセット
        導入されたバージョン:
        1.2
      • solveCubic

        public static int solveCubic​(double[] eqn)
        係数がeqn配列にある3次方程式の解を得て、非複素数解を同じ配列に戻し、結果として解の個数を返します。 解を得た3次方程式は次の等式で表されます。
             eqn = {c, b, a, d}
             dx^3 + ax^2 + bx + c = 0
         
        戻り値の -1を使うと、常に0であるかまたは0でない定数方程式と、ゼロを持たない方程式とを区別できます。
        パラメータ:
        eqn - 3次方程式の係数を含む配列
        戻り値:
        解の個数。ただし、方程式が定数の場合は -1。
        導入されたバージョン:
        1.2
      • solveCubic

        public static int solveCubic​(double[] eqn,
                                     double[] res)
        係数がeqn配列にある3次方程式の解を得て、非複素数解をres配列に戻し、結果として解の個数を返します。 解を得た3次方程式はeqn ={c, b, a, d} dx^3+ax^2+bx+c = 0という等式で表されます。戻り値の -1を使うと、常に0であるかまたは0でない定数方程式と、ゼロを持たない方程式とを区別できます。
        パラメータ:
        eqn - 3次方程式の解を得るために使用する係数の指定された配列
        res - 3次方程式の解から得られる非複素数解を含む配列
        戻り値:
        解の個数。ただし、方程式が定数の場合は -1
        導入されたバージョン:
        1.3
      • contains

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

        public boolean contains​(Point2D p)
        指定されたPoint2Dが、内側の定義によって記述されたShapeの境界の内側にあるかどうかをテストします。
        定義:
        contains、インタフェース: Shape
        パラメータ:
        p - テストされる指定されたPoint2D
        戻り値:
        指定されたPoint2DShapeの境界の内側にある場合は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オブジェクトより正確な、幾何学的な共通部分の計算を実行するため、より的確な答えが必要な場合に使用できます。
        定義:
        intersects、インタフェース: Shape
        パラメータ:
        x - 指定された矩形領域の左上隅のX座標
        y - 指定された矩形領域の左上隅のY座標
        w - 指定された矩形領域の幅
        h - 指定された矩形領域の高さ
        戻り値:
        Shapeの内部と矩形領域の内部が交差しているか、またはどちらも交差している可能性が高いが、負荷が大きすぎて共通部分の計算を実行できない場合はtrue、それ以外の場合はfalse
        導入されたバージョン:
        1.2
        関連項目:
        Area
      • intersects

        public boolean intersects​(Rectangle2D r)
        Shapeの内部が指定されたRectangle2Dの内部と交差しているかどうかをテストします。 Shape.intersects()メソッドを使用すると、次のような場合に、Shape実装は内部的にtrueを返すことができます。
        • Rectangle2DShapeが交差している可能性が高いが、
        • この共通部分を正確に判断する計算の負荷がかなり大きい。
        つまり、Shapesによっては、Rectangle2DShapeと交差していない場合でもこのメソッドがtrueを返すことがあります。 Areaクラスは、ほとんどのShapeオブジェクトより正確な、幾何学的な共通部分の計算を実行するため、より的確な答えが必要な場合に使用できます。
        定義:
        intersects、インタフェース: Shape
        パラメータ:
        r - 指定されたRectangle2D
        戻り値:
        Shapeの内部と指定されたRectangle2Dの内部が交差しているか、またはどちらも交差している可能性が高いが、負荷が大きすぎて共通部分の計算を実行できない場合はtrue、それ以外の場合はfalse
        導入されたバージョン:
        1.2
        関連項目:
        Shape.intersects(double, double, double, double)
      • 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オブジェクトより正確な幾何学的計算を実行するため、より的確な答えが必要な場合に使用できます。
        定義:
        contains、インタフェース: Shape
        パラメータ:
        x - 指定された矩形領域の左上隅のX座標
        y - 指定された矩形領域の左上隅のY座標
        w - 指定された矩形領域の幅
        h - 指定された矩形領域の高さ
        戻り値:
        Shapeの内部に、指定された矩形領域が完全に含まれる場合はtrue、それ以外の場合、またはShapeに矩形領域が含まれ、intersectsメソッドがtrueを返し、さらに負荷が大きすぎて包含の計算を実行できない場合はfalse
        導入されたバージョン:
        1.2
        関連項目:
        AreaShape.intersects(double, double, double, double)
      • contains

        public boolean contains​(Rectangle2D r)
        Shapeの内部に、指定されたRectangle2Dが完全に含まれるかどうかをテストします。 Shape.contains()メソッドを使用すると、次のような場合に、Shape実装は内部的にfalseを返すことができます。
        • intersectメソッドがtrueを返し、かつ
        • ShapeRectangle2Dが完全に含まれるかどうかを判定するための計算の負荷が非常に大きい。
        つまり、Shapesによっては、ShapeRectangle2Dが含まれている場合でもこのメソッドがfalseを返すことがあります。 Areaクラスは、ほとんどのShapeオブジェクトより正確な幾何学的計算を実行するため、より的確な答えが必要な場合に使用できます。
        定義:
        contains、インタフェース: Shape
        パラメータ:
        r - 指定されたRectangle2D
        戻り値:
        Shapeの内部にRectangle2Dが完全に含まれる場合はtrue、それ以外の場合、またはShapeRectangle2Dが含まれ、intersectsメソッドがtrueを返し、さらに負荷が大きすぎて包含の計算を実行できない場合はfalse
        導入されたバージョン:
        1.2
        関連項目:
        Shape.contains(double, double, double, double)
      • getBounds

        public Rectangle getBounds()
        Shapeを完全に囲む整数のRectangleを返します。 返されたRectangleShapeを囲む最小のバウンディング・ボックスであるとは限りません。示されたRectangle内にShapeが完全に収まるというだけです。 また、Shapeが整数型の制限範囲を超える場合、返されたRectangleShapeを完全に囲むことができないこともあります。 通常は、getBounds2Dメソッドの方が、表現の自由度が高いために、比較的ぴったりしたバウンディング・ボックスを返します。

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

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

        shape.contains(x,y)には次が必要: bounds.contains(x,y)

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

        bounds.contains(x,y)は次を示さない: shape.contains(x,y)

        定義:
        getBounds、インタフェース: Shape
        戻り値:
        Shapeを完全に囲む整数型のRectangle
        導入されたバージョン:
        1.2
        関連項目:
        Shape.getBounds2D()
      • getPathIterator

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

        public PathIterator getPathIterator​(AffineTransform at,
                                            double flatness)
        平坦化された形状の境界を定義する繰返しオブジェクトを返します。 このクラスのイテレータは、マルチ・スレッドに対して安全ではありません。つまりこのCubicCurve2Dクラスでは、このCubicCurve2Dオブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の反復処理に影響を及ぼす場合があります。
        定義:
        getPathIterator、インタフェース: Shape
        パラメータ:
        at - 反復処理で返されるときに座標に適用されるオプションのAffineTransform、または変換されていない座標が必要な場合はnull
        flatness - 分割された曲線が終点を結ぶ直線によって置換される前に、指定された曲線の制御点が共線から外れることのできる最大距離
        戻り値:
        このCubicCurve2Dの輪郭の幾何学的図形を一度に1セグメントずつ返すPathIteratorオブジェクト。
        導入されたバージョン:
        1.2
      • clone

        public Object clone()
        このオブジェクトと同じクラスの新しいオブジェクトを作成します。
        オーバーライド:
        clone、クラス: Object
        戻り値:
        このインスタンスの複製。
        例外:
        OutOfMemoryError - 十分なメモリーがない場合。
        導入されたバージョン:
        1.2
        関連項目:
        Cloneable