appendix> 2D> QuadCurve2D.Double TOPUPPREVNEXT

QuadCurve2D.Double 2次曲線

【主な機能】

2次ベジエ曲線 Bezier Curve を表現します。

2次ベジエ曲線は、2次式で表現される曲線で次の性質があります。

通常は 「3つの制御点があり、...」という言い方がされますが、 Javaでは、始点、制御点、終点 と呼ばれます。

【例】

Quad1-1.gif   Quad1-2.gif Quad1-3.gif

【コンストラクタ】

コンストラクタ概要
QuadCurve2D.Double ( ) 始点を (0,0)、制御点を (0,0)、終点を (0,0) とする2次ベジエ曲線を生成します。
QuadCurve2D.Double (
double x1 , double y1 ,
double xc , double yc ,
double x2 , double y2 )
始点を ( x1 , y1 )、 制御点を ( xc , yc )、 終点を( x2 , y2 ) とする2次ベジエ曲線を生成します。

【よく使われるメソッド】

メソッド機能
Rectangel2D getBounds2D ( ) この図形を囲む四角い枠を返します。
Point2D getP1 ( )
double getX1 ( )
double getY1 ( )
それぞれ、始点、始点のx座標、始点のy座標を値とします。
Point2D getCtrlPt ( )
double getCtrlX ( )
double getCtrlY ( )
それぞれ、制御点、制御点のx座標、制御点のy座標を値とします。
Point2D getP2 ( )
double getX2 ( )
double getY2 ( )
それぞれ、終点、終点のx座標、終点のy座標を値とします。
void setCurve.Double (
double x1 , double y1 ,
double xc , double yc ,
double x2 , double y2 )
この図形の始点を ( x1 , y1 )、 制御点を ( xc , xc )、 終点を( x2 , y2 ) に設定します。

【QuadCurve2D から継承した主なメソッド】

メソッド機能
boolean contains ( double x , double y )
boolean contains ( Point2D p )
それぞれ、座標 ( x, y ) 、 点 p がこの図形の内側にあれば true、そうでなければ false。
boolean contains (
double x , double y ,
double w , double h )
boolean contains ( Rectangle2D r )
この図形が、それぞれ矩形領域 ( x , y , w , h ) あるいは r を 包含すれば true、 そうでなければ false。
Rectangle getBounds ( ) この図形を囲む四角い枠を返します。
boolean intersects (
double x , double y ,
double w , double h )
boolean intersects ( Rectangle2D r )
この図形と矩形領域 ( x , y , w , h )、 あるいはこの図形と矩形領域 r とが 重なる場合 true、 そうでなければ false。
void setCurve
( double[] coords , int offset )
この図形の始点、制御点、終点の座標を、配列 coordsoffset から6個で示される数値にします。
void setCurve
( Point2D[] pts . int offset )
この図形の始点、制御点、終点の座標を、配列 coordsoffset から3個で示される点の座標と同じにします。
void setCurve (
Point2D p1 ,
Point2D pc ,
Point2D p2 )
p1>、点pc>、点p2 の座標をそれぞれ、この図形の始点、制御点、終点の座標に設定します。
void setCurve ( QuadCurve2D c ) この図形の始点、制御点、終点の座標を、c と同じにします。
static int solveQuadratic
( double[] eqn )
2次方程式 ax2 + bx + c = 0 の係数 { c , b , a } を eqn に設定して、このメソッドを呼び出す。
実数解があれば eqn に設定され、解の個数が値として返されます。 解が複素数になる場合は、0 が返されます。方程式が定数の場合は、-1 が返されます。
static int solveQuadratic (
double[] eqn ,
double[] res )
2次方程式 ax2 + bx + c = 0 の係数 { c , b , a } を eqn に設定して、このメソッドを呼び出す。
実数解があれば res に設定され、解の個数が値として返されます。 解が複素数になる場合は、0 が返されます。方程式が定数の場合は、-1 が返されます。

【例1】

プログラム Quad1.java

上記の例を表示するプログラム

実行結果

Quad1-4.gif

【例2】

プログラム Quad2.java

solveQuadratic で2次方程式を解く

実行結果

Quad2-1.gif

【例3】

プログラム Quad4.java

getBounds の実行例

【例4】

プログラム Quad5.java

contains の実行例
図形が大きくなると表示に時間がかかります。 マウスをゆっくりドラッグしてください。

実行結果

Quad5-1.gif

【例5】

プログラム Quad5a.java

contains の結果をDOS画面に表示する例

更新日:2004-04-04