public abstract class QuadCurve2D extends Object implements Shape, Cloneable
QuadCurve2Dクラスは、(x,y)座標空間の2次パラメトリック曲線セグメントを定義します。
 このクラスは、2Dの2次曲線セグメントを格納するすべてのオブジェクトの抽象スーパー・クラスにすぎません。 座標の実際の記憶域表現はサブクラスに委ねられます。
| 修飾子と型 | クラス | 説明 | 
|---|---|---|
| static class  | QuadCurve2D.Double | double座標で指定された2次パラメトリック曲線セグメント。 | 
| static class  | QuadCurve2D.Float | float座標で指定された2次パラメトリック曲線セグメント。 | 
| 修飾子 | コンストラクタ | 説明 | 
|---|---|---|
| protected  | QuadCurve2D() | これは、インスタンスを直接には生成できない抽象クラスです。 | 
| 修飾子と型 | メソッド | 説明 | 
|---|---|---|
| Object | clone() | このオブジェクトと同じクラスで、同じ内容の新しいオブジェクトを作成します。 | 
| boolean | contains(double x, double y) | 指定された座標が、内側の定義によって記述された Shapeの境界の内側にあるかどうかをテストします。 | 
| boolean | contains(double x, double y, double w, double h) | Shapeの内部に、指定された矩形領域が完全に含まれるかどうかをテストします。 | 
| boolean | contains(Point2D p) | |
| boolean | contains(Rectangle2D r) | Shapeの内部に、指定されたRectangle2Dが完全に含まれるかどうかをテストします。 | 
| Rectangle | getBounds() | Shapeを完全に囲む整数のRectangleを返します。 | 
| abstract Point2D | getCtrlPt() | 制御点を返します。 | 
| abstract double | getCtrlX() | 制御点のX座標を double精度で返します。 | 
| abstract double | getCtrlY() | 制御点のY座標を double精度で返します。 | 
| double | getFlatness() | この QuadCurve2Dのフラットネス、つまり終点を結ぶ線から制御点までの最大距離を返します。 | 
| static double | getFlatness(double[] coords, int offset) | 指定された配列の指定されたインデックスに格納された制御点によって指定される2次曲線のフラットネス、つまり終点間を接続する線から制御点までの最大距離を返します。 | 
| static double | getFlatness(double x1, double y1, double ctrlx, double ctrly, double x2, double y2) | 指定された制御点によって指定される2次曲線のフラットネス、つまり終点間を接続する線から制御点までの最大距離を返します。 | 
| double | getFlatnessSq() | この QuadCurve2Dのフラットネスの2乗、つまり終点を結ぶ線から制御点までの最大距離の2乗を返します。 | 
| static double | getFlatnessSq(double[] coords, int offset) | 指定された配列の指定されたインデックスに格納された制御点によって指定される2次曲線のフラットネスの2乗、つまり終点間を接続する線から制御点までの最大距離の2乗を返します。 | 
| static double | getFlatnessSq(double x1, double y1, double ctrlx, double ctrly, double x2, double y2) | 指定された制御点によって指定される2次曲線のフラットネスの2乗、つまり終点間を接続する線から制御点までの最大距離の2乗を返します。 | 
| abstract Point2D | getP1() | 始点を返します。 | 
| abstract Point2D | getP2() | 終点を返します。 | 
| PathIterator | getPathIterator(AffineTransform at) | この QuadCurve2Dの形状の境界を定義する反復オブジェクトを返します。 | 
| PathIterator | getPathIterator(AffineTransform at, double flatness) | この QuadCurve2Dの平坦化された形状の境界を定義する反復オブジェクトを返します。 | 
| abstract double | getX1() | 始点のX座標を double精度で返します。 | 
| abstract double | getX2() | 終点のX座標を double精度で返します。 | 
| abstract double | getY1() | 始点のY座標を double精度で返します。 | 
| abstract double | getY2() | 終点のY座標を double精度で返します。 | 
| boolean | intersects(double x, double y, double w, double h) | Shapeの内部が指定された矩形領域の内部と交差しているかどうかをテストします。 | 
| boolean | intersects(Rectangle2D r) | Shapeの内部が指定されたRectangle2Dの内部と交差しているかどうかをテストします。 | 
| void | setCurve(double[] coords, int offset) | この QuadCurve2Dの終点と制御点の位置を、指定された配列内の指定されたオフセットにあるdouble座標に設定します。 | 
| abstract void | setCurve(double x1, double y1, double ctrlx, double ctrly, double x2, double y2) | この曲線の終点と制御点の位置を、指定された double座標に設定します。 | 
| void | setCurve(Point2D[] pts, int offset) | 指定された配列の指定されたオフセットにある Point2Dオブジェクトの座標に、このQuadCurve2Dの終点と制御点の位置を設定します。 | 
| void | setCurve(Point2D p1, Point2D cp, Point2D p2) | この QuadCurve2Dの終点と制御点の位置を、指定されたPoint2D座標に設定します。 | 
| void | setCurve(QuadCurve2D c) | この QuadCurve2Dの終点と制御点の位置を、指定されたQuadCurve2Dのそれらと同じに設定します。 | 
| static int | solveQuadratic(double[] eqn) | 係数が eqn配列にある2次方程式の解を得て、非複素数解を同じ配列に戻し、結果として解の個数を返します。 | 
| static int | solveQuadratic(double[] eqn, double[] res) | 係数が eqn配列にある2次方程式の解を得て、非複素数解をres配列に置き、結果として解の個数を返します。 | 
| static void | subdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff) | src配列のインデックスsrcoffからsrcoff+ 5に格納されている座標で指定される2次曲線を分割して、分割した2つの曲線を2つの配列の対応するインデックスに格納します。 | 
| void | subdivide(QuadCurve2D left, QuadCurve2D right) | この QuadCurve2Dを分割して、分割した2つの曲線をleftおよびright曲線パラメータに格納します。 | 
| static void | subdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right) | srcパラメータで指定された2次曲線を分割し、分割された2つの曲線をleftおよびright曲線パラメータに保存します。 | 
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetBounds2Dprotected QuadCurve2D()
QuadCurve2D.Float、QuadCurve2D.Doublepublic abstract double getX1()
double精度で返します。public abstract double getY1()
double精度で返します。public abstract Point2D getP1()
QuadCurve2Dの始点であるPoint2D。public abstract double getCtrlX()
double精度で返します。public abstract double getCtrlY()
double精度で返します。public abstract Point2D getCtrlPt()
Point2Dの制御点であるPoint2D。public abstract double getX2()
double精度で返します。public abstract double getY2()
double精度で返します。public abstract Point2D getP2()
Point2Dの終点であるPointオブジェクト。public abstract void setCurve(double x1,
                              double y1,
                              double ctrlx,
                              double ctrly,
                              double x2,
                              double y2)
double座標に設定します。x1 - 始点のX座標y1 - 始点のY座標ctrlx - 制御点のX座標ctrly - 制御点のY座標x2 - 終点のX座標y2 - 終点のY座標public void setCurve(double[] coords,
                     int offset)
QuadCurve2Dの終点と制御点の位置を、指定された配列内の指定されたオフセットにあるdouble座標に設定します。coords - 座標値を含む配列offset - 座標値の取得と、このQuadCurve2Dへのその割り当てを開始する位置を示す配列のインデックスpublic void setCurve(Point2D p1, Point2D cp, Point2D p2)
QuadCurve2Dの終点と制御点の位置を、指定されたPoint2D座標に設定します。p1 - 始点cp - 制御点p2 - 終点public void setCurve(Point2D[] pts, int offset)
Point2Dオブジェクトの座標に、このQuadCurve2Dの終点と制御点の位置を設定します。pts - 座標値を定義するPoint2Dを含む配列offset - 座標値の取得と、このQuadCurve2Dへのその割り当てを開始する位置を示すptsのインデックスpublic void setCurve(QuadCurve2D c)
QuadCurve2Dの終点と制御点の位置を、指定されたQuadCurve2Dのそれらと同じに設定します。c - 指定されたQuadCurve2Dpublic static double getFlatnessSq(double x1,
                                   double y1,
                                   double ctrlx,
                                   double ctrly,
                                   double x2,
                                   double y2)
x1 - 始点のX座標y1 - 始点のY座標ctrlx - 制御点のX座標ctrly - 制御点のY座標x2 - 終点のX座標y2 - 終点のY座標public static double getFlatness(double x1,
                                 double y1,
                                 double ctrlx,
                                 double ctrly,
                                 double x2,
                                 double y2)
x1 - 始点のX座標y1 - 始点のY座標ctrlx - 制御点のX座標ctrly - 制御点のY座標x2 - 終点のX座標y2 - 終点のY座標public static double getFlatnessSq(double[] coords,
                                   int offset)
coords - 座標値を格納する配列offset - 配列からの値の取得を開始する位置を示すcoordsのインデックスpublic static double getFlatness(double[] coords,
                                 int offset)
coords - 座標値を格納する配列offset - 座標値の取得を開始する位置を示すcoordsのインデックスpublic double getFlatnessSq()
QuadCurve2Dのフラットネスの2乗、つまり終点を結ぶ線から制御点までの最大距離の2乗を返します。QuadCurve2Dのフラットネスの2乗。public double getFlatness()
QuadCurve2Dのフラットネス、つまり終点を結ぶ線から制御点までの最大距離を返します。QuadCurve2Dのフラットネス。public void subdivide(QuadCurve2D left, QuadCurve2D right)
QuadCurve2Dを分割して、分割した2つの曲線をleftおよびright曲線パラメータに格納します。 leftオブジェクトとrightオブジェクトのどちらかまたは両方がこのQuadCurve2Dと同じか、またはnullになる場合があります。 left - 分割された曲線の左側(最初の半分)を格納するためのQuadCurve2Dオブジェクトright - 分割された曲線の右側(残り半分)を格納するためのQuadCurve2Dオブジェクトpublic static void subdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right)
srcパラメータで指定された2次曲線を分割し、分割された2つの曲線をleftおよびright曲線パラメータに保存します。 leftオブジェクトとrightオブジェクトのどちらかまたは両方がsrcオブジェクトと同じか、またはnullになる場合があります。 src - 分割される2次曲線left - 分割された曲線の左側(最初の半分)を格納するためのQuadCurve2Dオブジェクトright - 分割された曲線の右側(残り半分)を格納するためのQuadCurve2Dオブジェクトpublic static void subdivide(double[] src,
                             int srcoff,
                             double[] left,
                             int leftoff,
                             double[] right,
                             int rightoff)
src配列のインデックスsrcoffからsrcoff + 5に格納されている座標で指定される2次曲線を分割して、分割した2つの曲線を2つの配列の対応するインデックスに格納します。 left配列とright配列のどちらかまたは両方がnullか、またはsrc配列と同じ配列およびオフセットへの参照になる場合があります。 分割された最初の曲線の終点は分割された2番目の曲線の始点と同じです。 そのため、この共通の点に余分なストレージが割り当てられないようにするために、leftとright用に同じ配列を渡し、rightoffがleftoff+4に等しくなるようにオフセットを使用することができます。 src - 転送元曲線の座標を保持する配列srcoff - 6つの転送元座標の先頭の配列へのオフセットleft - 分割された曲線の最初の半分の座標を格納するための配列leftoff - 6つの左座標の先頭の配列へのオフセットright - 分割された曲線の残り半分の座標を格納するための配列rightoff - 6つの右座標の先頭の配列へのオフセットpublic static int solveQuadratic(double[] eqn)
eqn配列にある2次方程式の解を得て、非複素数解を同じ配列に戻し、結果として解の個数を返します。 解を得た2次方程式は次の等式で表されます。 
 
     eqn = {C, B, A};
     ax^2 + bx + c = 0
 
 戻り値の-1を使用すると、常に0か0でない定数方程式と、ゼロを持たない方程式とを区別できます。eqn - 2次方程式の係数を含む配列-1public static int solveQuadratic(double[] eqn,
                                 double[] res)
eqn配列にある2次方程式の解を得て、非複素数解をres配列に置き、結果として解の個数を返します。 解を得た2次方程式は次の等式で表されます。 
 
     eqn = {C, B, A};
     ax^2 + bx + c = 0
 
 戻り値の-1を使用すると、常に0か0でない定数方程式と、ゼロを持たない方程式とを区別できます。eqn - 2次方程式の解を得るために使用する係数の指定された配列res - 2次方程式の解から得られる非複素数解を含む配列-1。public boolean contains(double x,
                        double y)
Shapeの境界の内側にあるかどうかをテストします。public boolean contains(Point2D p)
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、インタフェースShapex - 指定された矩形領域の左上隅のX座標y - 指定された矩形領域の左上隅のY座標w - 指定された矩形領域の幅h - 指定された矩形領域の高さShapeの内部と矩形領域の内部が交差しているか、またはどちらも交差している可能性が高いが、負荷が大きすぎて共通部分の計算を実行できない場合はtrue、それ以外の場合はfalse。Areapublic boolean intersects(Rectangle2D r)
Shapeの内部が指定されたRectangle2Dの内部と交差しているかどうかをテストします。 Shape.intersects()メソッドを使用すると、次のような場合に、Shape実装は内部的にtrueを返すことができます。 
 Rectangle2DとShapeが交差している可能性が高いが、
 Shapesによっては、Rectangle2DがShapeと交差していない場合でもこのメソッドがtrueを返すことがあります。 Areaクラスは、ほとんどのShapeオブジェクトより正確な、幾何学的な共通部分の計算を実行するため、より的確な答えが必要な場合に使用できます。 intersects、インタフェースShaper - 指定されたRectangle2DShapeの内部と指定されたRectangle2Dの内部が交差しているか、またはどちらも交差している可能性が高いが、負荷が大きすぎて共通部分の計算を実行できない場合はtrue、それ以外の場合はfalse。Shape.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に矩形領域が完全に含まれるかどうかを判定するための計算の負荷が非常に大きい。
 Shapesによっては、Shapeに矩形領域が含まれている場合でもこのメソッドがfalseを返すことがあります。 Areaクラスは、ほとんどのShapeオブジェクトより正確な幾何学的計算を実行するため、より的確な答えが必要な場合に使用できます。 contains、インタフェースShapex - 指定された矩形領域の左上隅のX座標y - 指定された矩形領域の左上隅のY座標w - 指定された矩形領域の幅h - 指定された矩形領域の高さShapeの内部に、指定された矩形領域が完全に含まれる場合はtrue、それ以外の場合、または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が完全に含まれるかどうかを判定するための計算の負荷が非常に大きい。
 Shapesによっては、ShapeにRectangle2Dが含まれている場合でもこのメソッドがfalseを返すことがあります。 Areaクラスは、ほとんどのShapeオブジェクトより正確な幾何学的計算を実行するため、より的確な答えが必要な場合に使用できます。 contains、インタフェースShaper - 指定されたRectangle2DShapeの内部にRectangle2Dが完全に含まれる場合はtrue、それ以外の場合、またはShapeにRectangle2Dが含まれ、intersectsメソッドがtrueを返し、さらに負荷が大きすぎて包含の計算を実行できない場合はfalse。Shape.contains(double, double, double, double)public Rectangle getBounds()
Shapeを完全に囲む整数のRectangleを返します。 返されたRectangleがShapeを囲む最小のバウンディング・ボックスであるとは限りません。示されたRectangle内にShapeが完全に収まるというだけです。 また、Shapeが整数型の制限範囲を超える場合、返されたRectangleはShapeを完全に囲むことができないこともあります。 通常は、getBounds2Dメソッドの方が、表現の自由度が高いために、比較的ぴったりしたバウンディング・ボックスを返します。 
 
 内側の定義によって、shapeの定義する輪郭上の点が、返されたboundsオブジェクトに含まれていると見なされない状況が発生する場合があります。ただし、これは、これらの点が元のshapeにも含まれていないと見なされる場合のみです。
 
 pointがcontains(point)メソッドに従ってshapeの内側にある場合は、boundsのcontains(point)メソッドに従って、返されたRectangle境界オブジェクトの内側にある必要があります。 具体的には、次のようになります。 
 
  shape.contains(x,y)にはbounds.contains(x,y)が必要
 
 pointがshapeの内側にない場合は、引き続きboundsオブジェクトに含まれている可能性があります。
 
  bounds.contains(x,y)はshape.contains(x,y)を示さない
 
getBounds、インタフェースShapeShapeを完全に囲む整数型のRectangle。Shape.getBounds2D()public PathIterator getPathIterator(AffineTransform at)
QuadCurve2Dの形状の境界を定義する反復オブジェクトを返します。 このクラスのイテレータは、マルチ・スレッドに対して安全ではありません。つまりこのQuadCurve2Dクラスでは、このQuadCurve2Dオブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の反復処理に影響を及ぼす場合があります。 getPathIterator、インタフェースShapeat - 形状の境界に適用するオプションのAffineTransformPathIteratorオブジェクト。public PathIterator getPathIterator(AffineTransform at, double flatness)
QuadCurve2Dの平坦化された形状の境界を定義する反復オブジェクトを返します。 このクラスのイテレータは、マルチ・スレッドに対して安全ではありません。つまりこのQuadCurve2Dクラスでは、このQuadCurve2Dオブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の反復処理に影響を及ぼす場合があります。 getPathIterator、インタフェースShapeat - 形状の境界に適用するオプションのAffineTransformflatness - この曲線が終点を結ぶ直線によって置換される前に、分割された曲線の制御点がこの曲線の終点間を結ぶ線から離れることのできる最大距離。PathIteratorオブジェクト。public Object clone()
clone、クラスObjectOutOfMemoryError - 十分なメモリーがない場合。Cloneable バグまたは機能を送信 
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。 
 Copyright © 1993, 2025, Oracle and/or its affiliates.  All rights reserved.  Use is subject to license terms.  Documentation Redistribution Policyも参照してください。