java.lang.Object
java.awt.geom.QuadCurve2D
- 直系の既知のサブクラス:
QuadCurve2D.Double,QuadCurve2D.Float
public abstract class QuadCurve2D extends Object implements Shape, Cloneable
QuadCurve2Dクラスは、(x,y)座標空間の2次パラメトリック曲線セグメントを定義します。
このクラスは、2Dの2次曲線セグメントを格納するすべてのオブジェクトの抽象スーパー・クラスにすぎません。 座標の実際の記憶域表現はサブクラスに委ねられます。
- 導入されたバージョン:
- 1.2
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 クラス 説明 static classQuadCurve2D.Doubledouble座標で指定された2次パラメトリック曲線セグメント。static classQuadCurve2D.Floatfloat座標で指定された2次パラメトリック曲線セグメント。 -
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protectedQuadCurve2D()これは、インスタンスを直接には生成できない抽象クラスです。 -
メソッドのサマリー
修飾子と型 メソッド 説明 Objectclone()このオブジェクトと同じクラスで、同じ内容の新しいオブジェクトを作成します。booleancontains(double x, double y)指定された座標が、内側の定義によって記述されたShapeの境界の内側にあるかどうかをテストします。booleancontains(double x, double y, double w, double h)Shapeの内部に、指定された矩形領域が完全に含まれるかどうかをテストします。booleancontains(Point2D p)booleancontains(Rectangle2D r)Shapeの内部に、指定されたRectangle2Dが完全に含まれるかどうかをテストします。RectanglegetBounds()Shapeを完全に囲む整数のRectangleを返します。abstract Point2DgetCtrlPt()制御点を返します。abstract doublegetCtrlX()制御点のX座標をdouble精度で返します。abstract doublegetCtrlY()制御点のY座標をdouble精度で返します。doublegetFlatness()このQuadCurve2Dのフラットネス、つまり終点を結ぶ線から制御点までの最大距離を返します。static doublegetFlatness(double[] coords, int offset)指定された配列の指定されたインデックスに格納された制御点によって指定される2次曲線のフラットネス、つまり終点間を接続する線から制御点までの最大距離を返します。static doublegetFlatness(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)指定された制御点によって指定される2次曲線のフラットネス、つまり終点間を接続する線から制御点までの最大距離を返します。doublegetFlatnessSq()このQuadCurve2Dのフラットネスの2乗、つまり終点を結ぶ線から制御点までの最大距離の2乗を返します。static doublegetFlatnessSq(double[] coords, int offset)指定された配列の指定されたインデックスに格納された制御点によって指定される2次曲線のフラットネスの2乗、つまり終点間を接続する線から制御点までの最大距離の2乗を返します。static doublegetFlatnessSq(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)指定された制御点によって指定される2次曲線のフラットネスの2乗、つまり終点間を接続する線から制御点までの最大距離の2乗を返します。abstract Point2DgetP1()始点を返します。abstract Point2DgetP2()終点を返します。PathIteratorgetPathIterator(AffineTransform at)このQuadCurve2Dの形状の境界を定義する反復オブジェクトを返します。PathIteratorgetPathIterator(AffineTransform at, double flatness)このQuadCurve2Dの平坦化された形状の境界を定義する反復オブジェクトを返します。abstract doublegetX1()始点のX座標をdouble精度で返します。abstract doublegetX2()終点のX座標をdouble精度で返します。abstract doublegetY1()始点のY座標をdouble精度で返します。abstract doublegetY2()終点のY座標をdouble精度で返します。booleanintersects(double x, double y, double w, double h)Shapeの内部が指定された矩形領域の内部と交差しているかどうかをテストします。booleanintersects(Rectangle2D r)Shapeの内部が指定されたRectangle2Dの内部と交差しているかどうかをテストします。voidsetCurve(double[] coords, int offset)このQuadCurve2Dの終点と制御点の位置を、指定された配列内の指定されたオフセットにあるdouble座標に設定します。abstract voidsetCurve(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)この曲線の終点と制御点の位置を、指定されたdouble座標に設定します。voidsetCurve(Point2D[] pts, int offset)指定された配列の指定されたオフセットにあるPoint2Dオブジェクトの座標に、このQuadCurve2Dの終点と制御点の位置を設定します。voidsetCurve(Point2D p1, Point2D cp, Point2D p2)このQuadCurve2Dの終点と制御点の位置を、指定されたPoint2D座標に設定します。voidsetCurve(QuadCurve2D c)このQuadCurve2Dの終点と制御点の位置を、指定されたQuadCurve2Dのそれらと同じに設定します。static intsolveQuadratic(double[] eqn)係数がeqn配列にある2次方程式の解を得て、非複素数解を同じ配列に戻し、結果として解の個数を返します。static intsolveQuadratic(double[] eqn, double[] res)係数がeqn配列にある2次方程式の解を得て、非複素数解をres配列に置き、結果として解の個数を返します。static voidsubdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff)src配列のインデックスsrcoffからsrcoff+ 5に格納されている座標で指定される2次曲線を分割して、分割した2つの曲線を2つの配列の対応するインデックスに格納します。voidsubdivide(QuadCurve2D left, QuadCurve2D right)このQuadCurve2Dを分割して、分割した2つの曲線をleftおよびright曲線パラメータに格納します。static voidsubdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right)srcパラメータで指定された2次曲線を分割し、分割された2つの曲線をleftおよびright曲線パラメータに保存します。
-
コンストラクタの詳細
-
QuadCurve2D
protected QuadCurve2D()これは、インスタンスを直接には生成できない抽象クラスです。 インスタンス生成のためには型固有の実装サブクラスが用意されており、これらのサブクラスにより、下記の各種アクセス用メソッドに必要な情報を格納するための形式が多数提供されます。- 導入されたバージョン:
- 1.2
- 関連項目:
QuadCurve2D.Float、QuadCurve2D.Double
-
-
メソッドの詳細
-
getX1
public abstract double getX1()始点のX座標をdouble精度で返します。- 戻り値:
- 始点のX座標。
- 導入されたバージョン:
- 1.2
-
getY1
public abstract double getY1()始点のY座標をdouble精度で返します。- 戻り値:
- 始点のY座標。
- 導入されたバージョン:
- 1.2
-
getP1
public abstract Point2D getP1()始点を返します。- 戻り値:
- この
QuadCurve2Dの始点であるPoint2D。 - 導入されたバージョン:
- 1.2
-
getCtrlX
public abstract double getCtrlX()制御点のX座標をdouble精度で返します。- 戻り値:
- 制御点のX座標
- 導入されたバージョン:
- 1.2
-
getCtrlY
public abstract double getCtrlY()制御点のY座標をdouble精度で返します。- 戻り値:
- 制御点のY座標。
- 導入されたバージョン:
- 1.2
-
getCtrlPt
public abstract Point2D getCtrlPt()制御点を返します。- 戻り値:
- この
Point2Dの制御点であるPoint2D。 - 導入されたバージョン:
- 1.2
-
getX2
public abstract double getX2()終点のX座標をdouble精度で返します。- 戻り値:
- 終点のx座標。
- 導入されたバージョン:
- 1.2
-
getY2
public abstract double getY2()終点のY座標をdouble精度で返します。- 戻り値:
- 終点のY座標。
- 導入されたバージョン:
- 1.2
-
getP2
public abstract Point2D getP2()終点を返します。- 戻り値:
- この
Point2Dの終点であるPointオブジェクト。 - 導入されたバージョン:
- 1.2
-
setCurve
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座標- 導入されたバージョン:
- 1.2
-
setCurve
public void setCurve(double[] coords, int offset)このQuadCurve2Dの終点と制御点の位置を、指定された配列内の指定されたオフセットにあるdouble座標に設定します。- パラメータ:
coords- 座標値を含む配列offset- 座標値の取得と、このQuadCurve2Dへのその割り当てを開始する位置を示す配列のインデックス- 導入されたバージョン:
- 1.2
-
setCurve
このQuadCurve2Dの終点と制御点の位置を、指定されたPoint2D座標に設定します。- パラメータ:
p1- 始点cp- 制御点p2- 終点- 導入されたバージョン:
- 1.2
-
setCurve
public void setCurve(Point2D[] pts, int offset)指定された配列の指定されたオフセットにあるPoint2Dオブジェクトの座標に、このQuadCurve2Dの終点と制御点の位置を設定します。- パラメータ:
pts- 座標値を定義するPoint2Dを含む配列offset- 座標値の取得と、このQuadCurve2Dへのその割り当てを開始する位置を示すptsのインデックス- 導入されたバージョン:
- 1.2
-
setCurve
public void setCurve(QuadCurve2D c)このQuadCurve2Dの終点と制御点の位置を、指定されたQuadCurve2Dのそれらと同じに設定します。- パラメータ:
c- 指定されたQuadCurve2D- 導入されたバージョン:
- 1.2
-
getFlatnessSq
public static double getFlatnessSq(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)指定された制御点によって指定される2次曲線のフラットネスの2乗、つまり終点間を接続する線から制御点までの最大距離の2乗を返します。- パラメータ:
x1- 始点のX座標y1- 始点のY座標ctrlx- 制御点のX座標ctrly- 制御点のY座標x2- 終点のX座標y2- 終点のY座標- 戻り値:
- 指定された座標で定義される2次曲線のフラットネスの2乗。
- 導入されたバージョン:
- 1.2
-
getFlatness
public static double getFlatness(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)指定された制御点によって指定される2次曲線のフラットネス、つまり終点間を接続する線から制御点までの最大距離を返します。- パラメータ:
x1- 始点のX座標y1- 始点のY座標ctrlx- 制御点のX座標ctrly- 制御点のY座標x2- 終点のX座標y2- 終点のY座標- 戻り値:
- 指定された座標で定義される2次曲線のフラットネス。
- 導入されたバージョン:
- 1.2
-
getFlatnessSq
public static double getFlatnessSq(double[] coords, int offset)指定された配列の指定されたインデックスに格納された制御点によって指定される2次曲線のフラットネスの2乗、つまり終点間を接続する線から制御点までの最大距離の2乗を返します。- パラメータ:
coords- 座標値を格納する配列offset- 配列からの値の取得を開始する位置を示すcoordsのインデックス- 戻り値:
- 指定された配列の指定されたインデックスにある値で定義される2次曲線のフラットネス。
- 導入されたバージョン:
- 1.2
-
getFlatness
public static double getFlatness(double[] coords, int offset)指定された配列の指定されたインデックスに格納された制御点によって指定される2次曲線のフラットネス、つまり終点間を接続する線から制御点までの最大距離を返します。- パラメータ:
coords- 座標値を格納する配列offset- 座標値の取得を開始する位置を示すcoordsのインデックス- 戻り値:
- 指定された配列の指定されたオフセットで定義される2次曲線のフラットネス。
- 導入されたバージョン:
- 1.2
-
getFlatnessSq
public double getFlatnessSq()このQuadCurve2Dのフラットネスの2乗、つまり終点を結ぶ線から制御点までの最大距離の2乗を返します。- 戻り値:
- この
QuadCurve2Dのフラットネスの2乗。 - 導入されたバージョン:
- 1.2
-
getFlatness
public double getFlatness()このQuadCurve2Dのフラットネス、つまり終点を結ぶ線から制御点までの最大距離を返します。- 戻り値:
- この
QuadCurve2Dのフラットネス。 - 導入されたバージョン:
- 1.2
-
subdivide
public void subdivide(QuadCurve2D left, QuadCurve2D right)このQuadCurve2Dを分割して、分割した2つの曲線をleftおよびright曲線パラメータに格納します。leftオブジェクトとrightオブジェクトのどちらかまたは両方がこのQuadCurve2Dと同じか、またはnullになる場合があります。- パラメータ:
left- 分割された曲線の左側(最初の半分)を格納するためのQuadCurve2Dオブジェクトright- 分割された曲線の右側(残り半分)を格納するためのQuadCurve2Dオブジェクト- 導入されたバージョン:
- 1.2
-
subdivide
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オブジェクト- 導入されたバージョン:
- 1.2
-
subdivide
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つの右座標の先頭の配列へのオフセット- 導入されたバージョン:
- 1.2
-
solveQuadratic
public static int solveQuadratic(double[] eqn)係数がeqn配列にある2次方程式の解を得て、非複素数解を同じ配列に戻し、結果として解の個数を返します。 解を得た2次方程式は次の等式で表されます。eqn = {C, B, A}; ax^2 + bx + c = 0戻り値の-1を使用すると、常に0か0でない定数方程式と、ゼロを持たない方程式とを区別できます。- パラメータ:
eqn- 2次方程式の係数を含む配列- 戻り値:
- 解の個数。方程式が定数の場合は
-1 - 導入されたバージョン:
- 1.2
-
solveQuadratic
public 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。 - 導入されたバージョン:
- 1.3
-
contains
public boolean contains(double x, double y)指定された座標が、内側の定義によって記述されたShapeの境界の内側にあるかどうかをテストします。 -
contains
public boolean contains(Point2D p) -
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を返すことができます。-
Rectangle2DとShapeが交差している可能性が高いが、 - この共通部分を正確に判断する計算の負荷がかなり大きい。
Shapesによっては、Rectangle2DがShapeと交差していない場合でもこのメソッドが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
- 関連項目:
Area、Shape.intersects(double, double, double, double)
-
-
contains
public boolean contains(Rectangle2D r)Shapeの内部に、指定されたRectangle2Dが完全に含まれるかどうかをテストします。Shape.contains()メソッドを使用すると、次のような場合に、Shape実装は内部的にfalseを返すことができます。-
intersectメソッドがtrueを返し、かつ -
ShapeにRectangle2Dが完全に含まれるかどうかを判定するための計算の負荷が非常に大きい。
Shapesによっては、ShapeにRectangle2Dが含まれている場合でもこのメソッドがfalseを返すことがあります。Areaクラスは、ほとんどのShapeオブジェクトより正確な幾何学的計算を実行するため、より的確な答えが必要な場合に使用できます。- 定義:
contains、インタフェース:Shape- パラメータ:
r- 指定されたRectangle2D- 戻り値:
Shapeの内部にRectangle2Dが完全に含まれる場合はtrue、それ以外の場合、またはShapeにRectangle2Dが含まれ、intersectsメソッドがtrueを返し、さらに負荷が大きすぎて包含の計算を実行できない場合はfalse。- 導入されたバージョン:
- 1.2
- 関連項目:
Shape.contains(double, double, double, double)
-
-
getBounds
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、インタフェース:Shape- 戻り値:
Shapeを完全に囲む整数型のRectangle。- 導入されたバージョン:
- 1.2
- 関連項目:
Shape.getBounds2D()
-
getPathIterator
public PathIterator getPathIterator(AffineTransform at)このQuadCurve2Dの形状の境界を定義する反復オブジェクトを返します。 このクラスのイテレータは、マルチ・スレッドに対して安全ではありません。つまりこのQuadCurve2Dクラスでは、このQuadCurve2Dオブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の反復処理に影響を及ぼす場合があります。- 定義:
getPathIterator、インタフェース:Shape- パラメータ:
at- 形状の境界に適用するオプションのAffineTransform- 戻り値:
- 形状の境界を定義する
PathIteratorオブジェクト。 - 導入されたバージョン:
- 1.2
-
getPathIterator
public PathIterator getPathIterator(AffineTransform at, double flatness)このQuadCurve2Dの平坦化された形状の境界を定義する反復オブジェクトを返します。 このクラスのイテレータは、マルチ・スレッドに対して安全ではありません。つまりこのQuadCurve2Dクラスでは、このQuadCurve2Dオブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の反復処理に影響を及ぼす場合があります。- 定義:
getPathIterator、インタフェース:Shape- パラメータ:
at- 形状の境界に適用するオプションのAffineTransformflatness- この曲線が終点を結ぶ直線によって置換される前に、分割された曲線の制御点がこの曲線の終点間を結ぶ線から離れることのできる最大距離。- 戻り値:
- 形状の平坦化された境界を定義する
PathIteratorオブジェクト。 - 導入されたバージョン:
- 1.2
-
clone
public Object clone()このオブジェクトと同じクラスで、同じ内容の新しいオブジェクトを作成します。- オーバーライド:
clone、クラス:Object- 戻り値:
- このインスタンスの複製。
- 例外:
OutOfMemoryError- 十分なメモリーがない場合。- 導入されたバージョン:
- 1.2
- 関連項目:
Cloneable
-