JavaTM Platform
Standard Ed. 6

java.awt.geom
クラス QuadCurve2D

java.lang.Object
  上位を拡張 java.awt.geom.QuadCurve2D
すべての実装されたインタフェース:
Shape, Cloneable
直系の既知のサブクラス:
QuadCurve2D.Double, QuadCurve2D.Float

public abstract class QuadCurve2D
extends Object
implements Shape, Cloneable

QuadCurve2D クラスは、(x,y) 座標空間の 2 次パラメトリック曲線セグメントを定義します。

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

導入されたバージョン:
1.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)
          指定された Point2DShape の境界内にあるかどうかを判定します。
 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)
          この QuadCurve2D の終点と制御点の位置を、指定された配列の指定されたオフセットにある Point2D オブジェクトの座標に設定します。
 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 曲線パラメータに保存します。
 
クラス java.lang.Object から継承されたメソッド
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース java.awt.Shape から継承されたメソッド
getBounds2D
 

コンストラクタの詳細

QuadCurve2D

protected QuadCurve2D()
これは、インスタンスを直接には生成できない abstract クラスです。インスタンス生成のためには型固有の実装サブクラスが用意されており、これらのサブクラスにより、下記の各種アクセス用メソッドに必要な情報を格納するための形式が多数提供されます。

導入されたバージョン:
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

public void setCurve(Point2D p1,
                     Point2D cp,
                     Point2D p2)
この QuadCurve2D の終点と制御点の位置を、指定された Point2D 座標に設定します。

パラメータ:
p1 - 始点
cp - 制御点
p2 - 終点
導入されたバージョン:
1.2

setCurve

public void setCurve(Point2D[] pts,
                     int offset)
この QuadCurve2D の終点と制御点の位置を、指定された配列の指定されたオフセットにある Point2D オブジェクトの座標に設定します。

パラメータ:
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 用として同じ配列を渡して、rightoffleftoff + 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 の境界内にあるかどうかを判定します。

定義:
インタフェース Shape 内の contains
パラメータ:
x - 判定対象の指定された X 座標
y - 判定対象の指定された Y 座標
戻り値:
指定された座標が Shape の境界内にある場合は true、そうでない場合は false
導入されたバージョン:
1.2

contains

public boolean contains(Point2D p)
指定された Point2DShape の境界内にあるかどうかを判定します。

定義:
インタフェース Shape 内の contains
パラメータ:
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 によっては、矩形領域が Shape と交差しない場合でもこのメソッドが true を返すことがあります。Area クラスは、ほとんどの Shape オブジェクトの幾何学的な共通部分のより精密な計算を行うため、より正確な結果が必要な場合に使用できます。

定義:
インタフェース Shape 内の intersects
パラメータ:
x - 指定された矩形領域の左上隅の X 座標
y - 指定された矩形領域の左上隅の Y 座標
w - 指定された矩形領域の幅
h - 指定された矩形領域の高さ
戻り値:
Shape の内部領域と矩形領域の内部領域が交差する場合、または交差する可能性が高いが、負荷が大き過ぎて共通部分の計算を行えない場合は true、そうでない場合は false
導入されたバージョン:
1.2
関連項目:
Area

intersects

public boolean intersects(Rectangle2D r)
Shape の内部が、指定された Rectangle2D の内部と交差するかどうかを判定します。Shape.intersects() メソッドを使用すると、次のような場合に Shape 実装は true を返すことがあります。 つまり、Shape によっては、Rectangle2DShape と交差しない場合でもこのメソッドが true を返すことがあります。Area クラスは、ほとんどの Shape オブジェクトの幾何学的な共通部分のより精密な計算を行うため、より正確な結果が必要な場合に使用できます。

定義:
インタフェース Shape 内の intersects
パラメータ:
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 を返すことがあります。

つまり、Shape によっては、Shape が矩形領域を包含する場合でもこのメソッドが false を返すことがあります。Area クラスは、ほとんどの Shape オブジェクトのより精密な幾何学的計算を行うため、より正確な結果が必要な場合に使用できます。

定義:
インタフェース Shape 内の contains
パラメータ:
x - 指定された矩形領域の左上隅の X 座標
y - 指定された矩形領域の左上隅の Y 座標
w - 指定された矩形領域の幅
h - 指定された矩形領域の高さ
戻り値:
Shape の内部領域が、指定された矩形領域を完全に包含する場合は true、そうでない場合は false。また、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 を返すことがあります。 つまり、Shape によっては、ShapeRectangle2D を包含する場合でもこのメソッドが false を返すことがあります。Area クラスは、ほとんどの Shape オブジェクトのより精密な幾何学的計算を行うため、より正確な結果が必要な場合に使用できます。

定義:
インタフェース Shape 内の contains
パラメータ:
r - 指定された Rectangle2D
戻り値:
Shape の内部領域が、Rectangle2D を完全に包含する場合は true、そうでない場合は false。また、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 内の getBounds
戻り値:
Shape を完全に囲む整数型の Rectangle
導入されたバージョン:
1.2
関連項目:
Shape.getBounds2D()

getPathIterator

public PathIterator getPathIterator(AffineTransform at)
この QuadCurve2D の形状の境界を定義する繰り返しオブジェクトを返します。このクラスの反復子は、マルチスレッドに対して安全ではありません。 つまりこの QuadCurve2D クラスでは、この QuadCurve2D オブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の繰り返し処理に影響を及ぼす場合があります。

定義:
インタフェース Shape 内の getPathIterator
パラメータ:
at - 形状の境界に適用されるオプションの AffineTransform
戻り値:
形状の境界を定義する PathIterator オブジェクト
導入されたバージョン:
1.2

getPathIterator

public PathIterator getPathIterator(AffineTransform at,
                                    double flatness)
この QuadCurve2D の平坦化された形状の境界を定義する繰り返しオブジェクトを返します。このクラスの反復子は、マルチスレッドに対して安全ではありません。 つまりこの QuadCurve2D クラスでは、この QuadCurve2D オブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の繰り返し処理に影響を及ぼす場合があります。

定義:
インタフェース Shape 内の getPathIterator
パラメータ:
at - 形状の境界に適用される オプションの AffineTransform
flatness - この曲線が終点を結ぶ直線により置換されない条件で、分割された曲線の制御点がこの曲線の終点間を結ぶ線から離れることができる最大距離
戻り値:
形状の平坦化された境界を定義する PathIterator オブジェクト
導入されたバージョン:
1.2

clone

public Object clone()
このオブジェクトと同じクラスで、同じ内容の新しいオブジェクトを作成します。

オーバーライド:
クラス Object 内の clone
戻り値:
このインスタンスの複製
例外:
OutOfMemoryError - 十分なメモリがない場合
導入されたバージョン:
1.2
関連項目:
Cloneable

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。