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()
これは、インスタンスを直接には生成できない abstract クラスです。
|
| 修飾子と型 | メソッドと説明 |
|---|---|
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, 2013, Oracle and/or its affiliates. All rights reserved.