|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.awt.geom.CubicCurve2D
public abstract class CubicCurve2D
CubicCurve2D
クラスは、(x,y)
座標空間の 3 次パラメトリック曲線セグメントを定義します。
このクラスは、2D の 3 次曲線セグメントを格納するすべてのオブジェクトの抽象スーパークラスにすぎません。座標の実際の記憶域表現はサブクラスに委ねられます。
入れ子のクラスの概要 | |
---|---|
static class |
CubicCurve2D.Double
double 座標で指定した、3 次パラメトリック曲線セグメントです。 |
static class |
CubicCurve2D.Float
float 座標で指定した、3 次パラメトリック曲線セグメントです。 |
コンストラクタの概要 | |
---|---|
protected |
CubicCurve2D()
これは、インスタンスを直接には生成できない 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)
指定された 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(CubicCurve2D c)
この曲線の終点と制御点の位置を、指定された CubicCurve2D 内の対応する位置と同じに設定します。 |
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(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 配列に戻し、結果として解の個数を返します。 |
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 の曲線パラメータに格納します。 |
static void |
subdivide(double[] src,
int srcoff,
double[] left,
int leftoff,
double[] right,
int rightoff)
src 配列のインデックス srcoff から (srcoff + 7) までに格納されている座標で指定される 3 次曲線を分割して、分割した 2 つの曲線を 2 つの配列の対応するインデックスに格納します。 |
クラス java.lang.Object から継承されたメソッド |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
インタフェース java.awt.Shape から継承されたメソッド |
---|
getBounds2D |
コンストラクタの詳細 |
---|
protected CubicCurve2D()
CubicCurve2D.Float
,
CubicCurve2D.Double
メソッドの詳細 |
---|
public abstract double getX1()
CubicCurve2D
の始点の X 座標public abstract double getY1()
CubicCurve2D
の始点の Y 座標public abstract Point2D getP1()
CubicCurve2D
の始点を表す Point2D
public abstract double getCtrlX1()
CubicCurve2D
の最初の制御点の X 座標public abstract double getCtrlY1()
CubicCurve2D
の最初の制御点の Y 座標public abstract Point2D getCtrlP1()
CubicCurve2D
の最初の制御点を表す Point2D
public abstract double getCtrlX2()
CubicCurve2D
の 2 番目の制御点の X 座標public abstract double getCtrlY2()
CubicCurve2D
の 2 番目の制御点の Y 座標public abstract Point2D getCtrlP2()
CubicCurve2D
の 2 番目の制御点を表す Point2D
public abstract double getX2()
CubicCurve2D
の終点の X 座標public abstract double getY2()
CubicCurve2D
の終点の Y 座標public abstract Point2D getP2()
CubicCurve2D
の終点を表す Point2D
public abstract void setCurve(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
x1
- この CubicCurve2D
の始点を設定するために使用される X 座標y1
- この CubicCurve2D
の始点を設定するために使用される Y 座標ctrlx1
- この CubicCurve2D
の最初の制御点を設定するために使用される X 座標ctrly1
- この CubicCurve2D
の最初の制御点を設定するために使用される Y 座標ctrlx2
- この CubicCurve2D
の 2 番目の制御点を設定するために使用される X 座標ctrly2
- この CubicCurve2D
の 2 番目の制御点を設定するために使用される Y 座標x2
- この CubicCurve2D
の終点を設定するために使用される X 座標y2
- この CubicCurve2D
の終点を設定するために使用される Y 座標public void setCurve(double[] coords, int offset)
coords
- 座標を格納する double 配列offset
- coords
のインデックス。ここから、この曲線の終点と制御点を coords
に格納された座標に設定するpublic void setCurve(Point2D p1, Point2D cp1, Point2D cp2, Point2D p2)
Point2D
座標に設定します。
p1
- この曲線の始点を設定するために使用される、最初に指定された Point2D
cp1
- この曲線の最初の制御点を設定するために使用される、2 番目に指定された Point2D
cp2
- この曲線の 2 番目の制御点を設定するために使用される、3 番目に指定された Point2D
p2
- この曲線の終点を設定するために使用される、4 番目に指定された Point2D
public void setCurve(Point2D[] pts, int offset)
Point2D
オブジェクトの座標に、この曲線の終点と制御点の位置を設定します。
pts
- Point2D
オブジェクトの配列offset
- pts
のインデックス。ここから、この曲線の終点と制御点を pts
に格納された点に設定するpublic void setCurve(CubicCurve2D c)
CubicCurve2D
内の対応する位置と同じに設定します。
c
- 指定された CubicCurve2D
public static double getFlatnessSq(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
x1
- CubicCurve2D
の始点を指定する X 座標y1
- CubicCurve2D
の始点を指定する Y 座標ctrlx1
- CubicCurve2D
の最初の制御点を指定する X 座標ctrly1
- CubicCurve2D
の最初の制御点を指定する Y 座標ctrlx2
- CubicCurve2D
の 2 番目の制御点を指定する X 座標ctrly2
- CubicCurve2D
の 2 番目の制御点を指定する Y 座標x2
- CubicCurve2D
の終点を指定する X 座標y2
- CubicCurve2D
の終点を指定する Y 座標
CubicCurve2D
のフラットネスの 2 乗public static double getFlatness(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
x1
- CubicCurve2D
の始点を指定する X 座標y1
- CubicCurve2D
の始点を指定する Y 座標ctrlx1
- CubicCurve2D
の最初の制御点を指定する X 座標ctrly1
- CubicCurve2D
の最初の制御点を指定する Y 座標ctrlx2
- CubicCurve2D
の 2 番目の制御点を指定する X 座標ctrly2
- CubicCurve2D
の 2 番目の制御点を指定する Y 座標x2
- CubicCurve2D
の終点を指定する X 座標y2
- CubicCurve2D
の終点を指定する Y 座標
CubicCurve2D
のフラットネスpublic static double getFlatnessSq(double[] coords, int offset)
coords
- 座標が格納されている配列offset
- coords
のインデックス。ここから、曲線の終点と制御点を取得する
coords
の指定されたオフセットにある座標で示される CubicCurve2D
のフラットネスの 2 乗public static double getFlatness(double[] coords, int offset)
coords
- 座標が格納されている配列offset
- coords
のインデックス。ここから、曲線の終点と制御点を取得する
coords
の指定されたオフセットにある座標で示される CubicCurve2D
のフラットネスpublic double getFlatnessSq()
public double getFlatness()
public void subdivide(CubicCurve2D left, CubicCurve2D right)
left
- 分割された曲線の左側 (最初の半分) を格納するための 3 次曲線オブジェクトright
- 分割された曲線の右側 (残り半分) を格納するための 3 次曲線オブジェクト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 次曲線オブジェクト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 番目の曲線の始点と同じです。そのためこの共通の点に余分な記憶域を割り当てるのを避けるために、left
用と right
用として同じ配列を渡して、rightoff
が (leftoff
+ 6) と等しいオフセットを使用できます。
src
- 転送元曲線の座標を保持する配列srcoff
- 6 つの転送元座標の先頭の配列へのオフセットleft
- 分割された曲線の最初の半分の座標を格納するための配列leftoff
- 6 つの左座標の先頭の配列へのオフセットright
- 分割された曲線の残り半分の座標を格納するための配列rightoff
- 6 つの右座標の先頭の配列へのオフセット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 次方程式の係数を格納している配列
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 次方程式の解から得られる非複素数解を格納する配列
public boolean contains(double x, double y)
Shape
の境界内にあるかどうかを判定します。
Shape
内の contains
x
- 判定対象の指定された X 座標y
- 判定対象の指定された Y 座標
Shape
の境界内にある場合は true
、そうでない場合は false
public boolean contains(Point2D p)
Point2D
が Shape
の境界内にあるかどうかを判定します。
Shape
内の contains
p
- 判定対象の、指定された Point2D
Point2D
が Shape
の境界内にある場合は true
、そうでない場合は false
public boolean intersects(double x, double y, double w, double h)
Shape
の内部領域が、指定された矩形領域の内部領域と交差するかどうかを判定します。Shape
の内部領域と指定された矩形領域の両方に含まれる点がある場合、矩形領域は Shape
と交差していると見なされます。
Shape.intersects()
メソッドを使用すると、次のような場合に Shape
実装は true
を返すことがあります。
Shape
が重なり合っている可能性がかなり高いが、
Shape
によっては、矩形領域が Shape
と交差しない場合でもこのメソッドが true
を返すことがあります。Area
クラスは、ほとんどの Shape
オブジェクトの幾何学的な共通部分のより精密な計算を行うため、より正確な結果が必要な場合に使用できます。
Shape
内の intersects
x
- 指定された矩形領域の左上隅の X 座標y
- 指定された矩形領域の左上隅の Y 座標w
- 指定された矩形領域の幅h
- 指定された矩形領域の高さ
Shape
の内部領域と矩形領域の内部領域が交差する場合、または交差する可能性が高いが、負荷が大き過ぎて共通部分の計算を行えない場合は true
、そうでない場合は false
Area
public boolean intersects(Rectangle2D r)
Shape
の内部が、指定された Rectangle2D
の内部と交差するかどうかを判定します。Shape.intersects()
メソッドを使用すると、次のような場合に Shape
実装は true
を返すことがあります。
Rectangle2D
と Shape
が交差する可能性が高いが、
Shape
によっては、Rectangle2D
が Shape
と交差しない場合でもこのメソッドが true
を返すことがあります。Area
クラスは、ほとんどの Shape
オブジェクトの幾何学的な共通部分のより精密な計算を行うため、より正確な結果が必要な場合に使用できます。
Shape
内の intersects
r
- 指定された Rectangle2D
Shape
の内部領域と指定された 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
が矩形領域を完全に包含するかどうかを判別する計算の負荷がかなり大きい
Shape
によっては、Shape
が矩形領域を包含する場合でもこのメソッドが false
を返すことがあります。Area
クラスは、ほとんどの Shape
オブジェクトのより精密な幾何学的計算を行うため、より正確な結果が必要な場合に使用できます。
Shape
内の contains
x
- 指定された矩形領域の左上隅の X 座標y
- 指定された矩形領域の左上隅の Y 座標w
- 指定された矩形領域の幅h
- 指定された矩形領域の高さ
Shape
の内部領域が、指定された矩形領域を完全に包含する場合は true
、そうでない場合は false
。また、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
を完全に包含するかどうかを判断する計算の負荷が大きい
Shape
によっては、Shape
が Rectangle2D
を包含する場合でもこのメソッドが false
を返すことがあります。Area
クラスは、ほとんどの Shape
オブジェクトのより精密な幾何学的計算を行うため、より正確な結果が必要な場合に使用できます。
Shape
内の contains
r
- 指定された Rectangle2D
Shape
の内部領域が、Rectangle2D
を完全に包含する場合は true
、そうでない場合は false
。また、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
内の getBounds
Shape
を完全に囲む整数型の Rectangle
Shape.getBounds2D()
public PathIterator getPathIterator(AffineTransform at)
CubicCurve2D
クラスでは、この CubicCurve2D
オブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の繰り返し処理に影響を及ぼす場合があります。
Shape
内の getPathIterator
at
- 繰り返し処理で返されるときに座標に適用されるオプションの AffineTransform
、変換されていない座標が必要な場合は null
CubicCurve2D
の輪郭の幾何学的図形を一度に 1 セグメントずつ返す PathIterator
オブジェクトpublic PathIterator getPathIterator(AffineTransform at, double flatness)
CubicCurve2D
クラスでは、この CubicCurve2D
オブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の繰り返し処理に影響を及ぼす場合があります。
Shape
内の getPathIterator
at
- 繰り返し処理で返されるときに座標に適用されるオプションの AffineTransform
、変換されていない座標が必要な場合は null
flatness
- 分割された曲線が終点を結ぶ直線によって置換される前に、指定された曲線の制御点が共線から外れることのできる最大距離
CubicCurve2D
の輪郭の幾何学的図形を一度に 1 セグメントずつ返す PathIterator
オブジェクトpublic Object clone()
Object
内の clone
OutOfMemoryError
- 十分なメモリがない場合Cloneable
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。