appendix> 2D> GeneralPath TOPUPPREVNEXT

java.awt.geom.GeneralPath

【主な機能】

直線、2次曲線、3次曲線を組み合わせた一般図形です。
moveTo、 lineTo、 quadTo、 curveTo でペンを動かすように作図します。
append で既存の図形をつなげて作図することも可能です。
閉じた図形にするには closePath を使います。

【継承関係】

    java.lang.Object
      └java.awt.geom.Path2D
            └java.awt.geom.Path2D.Float
                  └java.awt.geom.GeneralPath
    

【主なコンストラクタ】

コンストラクタ機能
GeneralPath () 新しい一般図形を生成します。

【メソッド】

メソッド機能
void append (
PathIterator p ,
boolean connect )
p で指定された図形をパスに追加します
void append ( Shape s , boolean connect ) s で指定された図形をパスに追加します。 パスが空でなく、connect が true の場合、 パスの最後とこの図形の先頭が離れていれば、直線で結ばれます。
void closePath ( ) 最後に実行された MoveTo の点まで直線をひき Path を閉じます。 既に閉じている場合は何もしません。
boolean contains (
double x ,
double y )
この図形が、 点 ( x , y ) を含む場合 true 、 そうでなければ false 。
boolean contains (
double x ,
double y ,
double w ,
double h )
この図形が、x y w h で定まる矩形を包含する場合 true 、 そうでない場合 flase 。
boolean contains ( Point2D p ) この図形が、点 p を含むかどうかを判定。
boolean contains ( Rectangle2D r ) この図形が、矩形 r を含むかどうかを判定。
void curveTo (
float x1 ,
float y1 ,
float x2 ,
float y2 ,
float x3 ,
float y3 )
パスの最後と、 点( x1 , y1 ) 、 点( x2 , y2 ) 、 点( x3 , y3 ) で定まる曲線をパスに追加する。
void lineTo (
float x1 ,
float y1 )
パスの最後と点( x1 , y1 ) を直線で結ぶ。
void moveTo (
float x1 ,
float y1 )
図形の始点を ( x1 , y1 ) に設定する。
void quadTo (
float x1 ,
float y1 ,
float x2 ,
float y2 )
パスの最後と、 点( x1 , y1 ) 、 点( x2 , y2 ) で定まる曲線をパスに追加する。
void reset ( ) パスを空にする。
void transform ( AffineTransform at ) この図形にアフィン変換 at を適用する。

【例1】

プログラム GeneralPathDemo1.java
moveTo curveTo の使用例
実行結果
GeneralPathDemo1-1.gif

【例2】

プログラム General1.java

2本の線分からなる合成図形

実行結果

General1-1.gif

【例3】

プログラム General2.java

図形を閉じた場合の合成図形
45行目 closePath を追加。

実行結果

General2-1.gif

【例4】

プログラム General3.java

例2で、図形を閉じる代わりに3点目に頂点を指定した場合の合成図形
45行目 closePathappend に変更。

実行結果

General3-1.gif

【例5】

プログラム General4.java

GeneralPath で指定した図形の内側の点をドラッグして、図形を移動する例。
プログラム StrokeBar.java が必要です。

実行結果

General4-1.gif


更新日:2004-12-03