|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjava.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()
これは、インスタンスを直接には生成できない抽象クラスです。 |
メソッドの概要 | |
---|---|
Object |
clone()
このオブジェクトと同じクラスの新しいオブジェクトを作成します。 |
boolean |
contains(double x,
double y)
指定された座標が形状の境界内にあるかどうかを判定します。 |
boolean |
contains(double x,
double y,
double w,
double h)
形状の内部が、指定された矩形座標セットを完全に包含しているかどうかを判定します。 |
boolean |
contains(Point2D p)
指定された Point2D が形状の境界内にあるかどうかを判定します。 |
boolean |
contains(Rectangle2D r)
形状の内部が、指定された Rectangle2D を完全に包含しているかどうかを判定します。 |
Rectangle |
getBounds()
形状のバウンディングボックスを返します。 |
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)
形状が、指定された矩形座標セットの内部と交差するかどうかを判定します。 |
boolean |
intersects(Rectangle2D r)
形状が、指定された 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, y1
- この CubicCurve2D
の始点を設定するのに使われる、最初に指定された座標ctrlx1, ctrly1
- この CubicCurve2D
の最初の制御点を設定するのに使われる、2 番目に指定された座標ctrlx2, ctrly2
- この CubicCurve2D
の 2 番目の制御点を設定するのに使われる、3 番目に指定された座標x2, y2
- この CubicCurve2D
の終点を設定するのに使われる、4 番目に指定された座標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, y1
- CubicCurve2D
の始点を指定する最初の座標ctrlx1, ctrly1
- CubicCurve2D
の最初の制御点を指定する 2 番目の座標ctrlx2, ctrly2
- CubicCurve2D
の 2 番目の制御点を指定する 3 番目の座標x2, y2
- CubicCurve2D
の終点を指定する 4 番目の座標
CubicCurve2D
のフラットネスの 2 乗public static double getFlatness(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
x1, y1
- CubicCurve2D
の始点を指定する最初の座標ctrlx1, ctrly1
- CubicCurve2D
の最初の制御点を指定する 2 番目の座標ctrlx2, ctrly2
- CubicCurve2D
の 2 番目の制御点を指定する 3 番目の座標x2, y2
- CubicCurve2D
の終点を指定する 4 番目の座標
CubicCurve2D
のフラットネスpublic static double getFlatnessSq(double[] coords, int offset)
coords
- 座標が格納されている配列offset
- coords
のインデックス。このインデックス位置以降の coords
に格納された座標に、この曲線の端点と制御点を設定する
coords
の指定されたオフセットにある座標で示される CubicCurve2D
のフラットネスの 2 乗public static double getFlatness(double[] coords, int offset)
coords
- 座標が格納されている配列offset
- coords
のインデックス。このインデックス位置以降の 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
内の contains
x, y
- 判定対象の指定座標
true
、そうでない場合は false
public boolean contains(Point2D p)
Point2D
が形状の境界内にあるかどうかを判定します。
Shape
内の contains
p
- 判定対象の、指定された Point2D
p
が形状の境界内にある場合は true
、そうでない場合は false
public boolean intersects(double x, double y, double w, double h)
Shape
内の intersects
x, y
- 指定された矩形領域の左上隅の座標w
- 指定された矩形領域の幅h
- 指定された矩形領域の高さ
true
、そうでない場合は false
Area
public boolean intersects(Rectangle2D r)
Rectangle2D
の内部と交差するかどうかを判定します。
Shape
内の intersects
r
- 判定対象の、指定された Rectangle2D
Rectangle2D
の内部と交差する場合は true
、そうでない場合は false
Shape.intersects(double, double, double, double)
public boolean contains(double x, double y, double w, double h)
Shape
内の contains
x, y
- 指定された矩形形状の左上隅の座標w
- 指定された矩形形状の幅h
- 指定された矩形形状の高さ
true
、そうでない場合は false
Area
,
Shape.intersects(double, double, double, double)
public boolean contains(Rectangle2D r)
Rectangle2D
を完全に包含しているかどうかを判定します。
Shape
内の contains
r
- 判定対象の、指定された Rectangle2D
Rectangle2D
を完全に包含している場合は true
、そうでない場合は false
Shape.contains(double, double, double, double)
public Rectangle getBounds()
Shape
内の getBounds
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 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。