JavaTM 2 Platform
Standard Ed. 5.0

java.awt.geom
クラス GeneralPath

java.lang.Object
  上位を拡張 java.awt.geom.GeneralPath
すべての実装されたインタフェース:
Shape, Cloneable

public final class GeneralPath
extends Object
implements Shape, Cloneable

GeneralPath クラスは、直線、2 次曲線、および 3 次 (ベジェ) 曲線から作成されたジオメトリックパスを表します。このクラスは、複数のサブパスを持つことができます。

屈曲規則は、パスの内部がどのように決められるかを指定します。屈曲規則には、EVEN_ODD と NON_ZERO の 2 つのタイプがあります。

EVEN_ODD の場合、パスの囲む領域は、パスの外側から領域の内側の点に向かって移動するときに内部領域と外部領域が切り替わります。

NON_ZERO では、指定された点を起点として無限遠点に向かって任意の方向に光線が描画される場合、その光線とパスが交差する場所を調べて、パスが光線を左から右に横切る回数と右から左に横切る回数が同じでない場合にだけ、点はパスの内側にあります。


フィールドの概要
static int WIND_EVEN_ODD
          パスの内部を決める偶奇屈曲規則です。
static int WIND_NON_ZERO
          パスの内部を決める非ゼロ屈曲規則です。
 
コンストラクタの概要
GeneralPath()
          新しい GeneralPath オブジェクトを構築します。
GeneralPath(int rule)
          パスの内部を定義する必要があるオペレーションを制御するために屈曲規則を指定して、新しい GeneralPath オブジェクトを構築します。
GeneralPath(int rule, int initialCapacity)
          屈曲規則、およびパスの座標を格納する初期容量を指定して、新しい GeneralPath オブジェクトを構築します。
GeneralPath(Shape s)
          任意の Shape オブジェクトから新しい GeneralPath オブジェクトを構築します。
 
メソッドの概要
 void append(PathIterator pi, boolean connect)
          指定された PathIterator オブジェクトのジオメトリをパスに追加します。
 void append(Shape s, boolean connect)
          指定された Shape オブジェクトのジオメトリをパスに追加します。
 Object clone()
          このオブジェクトと同じクラスの新しいオブジェクトを作成します。
 void closePath()
          最後の moveTo の座標まで直線を描画して現在のサブパスを閉じます。
 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)
          指定された Rectangle2D がこの Shape の境界内にあるかどうかを判定します。
 Shape createTransformedShape(AffineTransform at)
          変換された、新しい Shape を返します。
 void curveTo(float x1, float y1, float x2, float y2, float x3, float y3)
          3 つの新しい点によって定義される曲線セグメントをパスに追加します。
 Rectangle getBounds()
          パスのバウンディングボックスを返します。
 Rectangle2D getBounds2D()
          パスのバウンディングボックスを返します。
 Point2D getCurrentPoint()
          パスの最後に追加されたもっとも新しい座標を Point2D オブジェクトとして返します。
 PathIterator getPathIterator(AffineTransform at)
          この Shape の境界に沿って繰り返し処理を行い、この Shape の輪郭のジオメトリへのアクセスを提供する PathIterator オブジェクトを返します。
 PathIterator getPathIterator(AffineTransform at, double flatness)
          平坦化された Shape の境界に沿って繰り返し処理を行い、Shape の輪郭のジオメトリへのアクセスを提供する PathIterator オブジェクトを返します。
 int getWindingRule()
          塗りつぶしスタイル屈曲規則を返します。
 boolean intersects(double x, double y, double w, double h)
          この Shape の内部が、指定された矩形座標セットの内部と交差するかどうかを判定します。
 boolean intersects(Rectangle2D r)
          この Shape の内部が、指定された Rectangle2D の内部と交差するかどうかを判定します。
 void lineTo(float x, float y)
          現在の座標から新しく指定された座標まで直線を描画して点をパスに追加します。
 void moveTo(float x, float y)
          指定された座標に移動して点をパスに追加します。
 void quadTo(float x1, float y1, float x2, float y2)
          2 つの新しい点によって定義される曲線セグメントをパスに追加します。
 void reset()
          パスを空にリセットします。
 void setWindingRule(int rule)
          このパスの屈曲規則を指定された値に設定します。
 void transform(AffineTransform at)
          指定された AffineTransform を使用して、このパスのジオメトリを変換します。
 
クラス java.lang.Object から継承されたメソッド
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

WIND_EVEN_ODD

public static final int WIND_EVEN_ODD
パスの内部を決める偶奇屈曲規則です。

関連項目:
定数フィールド値

WIND_NON_ZERO

public static final int WIND_NON_ZERO
パスの内部を決める非ゼロ屈曲規則です。

関連項目:
定数フィールド値
コンストラクタの詳細

GeneralPath

public GeneralPath()
新しい GeneralPath オブジェクトを構築します。パスの内部を定義する必要があるオペレーションがこのパスで実行される場合、デフォルトの NON_ZERO 屈曲規則が使用されます。

関連項目:
WIND_NON_ZERO

GeneralPath

public GeneralPath(int rule)
パスの内部を定義する必要があるオペレーションを制御するために屈曲規則を指定して、新しい GeneralPath オブジェクトを構築します。

パラメータ:
rule - 屈曲規則
関連項目:
WIND_EVEN_ODD, WIND_NON_ZERO

GeneralPath

public GeneralPath(int rule,
                   int initialCapacity)
屈曲規則、およびパスの座標を格納する初期容量を指定して、新しい GeneralPath オブジェクトを構築します。この数字は、パスに存在するパスセグメントの数についての初期推定ですが、このパスにパスセグメントが追加されるときに必要に応じて拡張されます。

パラメータ:
rule - 屈曲規則
initialCapacity - パスにあるパスセグメントの数の推定値
関連項目:
WIND_EVEN_ODD, WIND_NON_ZERO

GeneralPath

public GeneralPath(Shape s)
任意の Shape オブジェクトから新しい GeneralPath オブジェクトを構築します。このパスの初期ジオメトリおよび屈曲規則はすべて、指定された Shape オブジェクトからとられます。

パラメータ:
s - 指定された Shape オブジェクト
メソッドの詳細

moveTo

public void moveTo(float x,
                   float y)
指定された座標に移動して点をパスに追加します。

パラメータ:
x, y - 指定された座標

lineTo

public void lineTo(float x,
                   float y)
現在の座標から新しく指定された座標まで直線を描画して点をパスに追加します。

パラメータ:
x, y - 指定された座標

quadTo

public void quadTo(float x1,
                   float y1,
                   float x2,
                   float y2)
2 つの新しい点によって定義される曲線セグメントをパスに追加します。曲線セグメントは、指定された点 (x1, y1) を 2 次パラメトリック制御点として使用して、現在の座標と指定された座標 (x2, y2) を通る 2 次曲線として描画します。

パラメータ:
x1, y1 - 最初の 2 次制御点の座標
x2, y2 - 最後の端点の座標

curveTo

public void curveTo(float x1,
                    float y1,
                    float x2,
                    float y2,
                    float x3,
                    float y3)
3 つの新しい点によって定義される曲線セグメントをパスに追加します。曲線セグメントは、指定された点 (x1, y1) および点 (x2, y2) をベジェ制御点として使用して、現在の座標と指定された座標 (x3, y3) の両方を通るベジェ曲線として描画します。

パラメータ:
x1, y1 - 最初のベジェ制御点の座標
x2, y2 - 2 番目のベジェ制御点の座標
x3, y3 - 最後の端点の座標

closePath

public void closePath()
最後の moveTo の座標まで直線を描画して現在のサブパスを閉じます。パスがすでに閉じている場合、このメソッドは効果がありません。


append

public void append(Shape s,
                   boolean connect)
指定された Shape オブジェクトのジオメトリをパスに追加します。その新しいジオメトリをラインセグメントで既存のパスセグメントに接続することも可能です。connect パラメータが true であり、パスが空ではない場合、追加された Shape のジオメトリの初期 moveTo は、lineTo セグメントに変わります。そのような接続 lineTo セグメントのデスティネーションの座標が現在開いているサブパスの終了座標と一致する場合、セグメントは不要なので省略されます。指定された Shape の屈曲規則は無視され、追加されたジオメトリはこのパスに指定された屈曲規則で制御されます。

パラメータ:
s - このパスにジオメトリが追加される Shape
connect - 新しいジオメトリを既存のパスに接続するために初期 moveTo セグメントを lineTo セグメントに変えるかどうかを制御する boolean 値

append

public void append(PathIterator pi,
                   boolean connect)
指定された PathIterator オブジェクトのジオメトリをパスに追加します。その新しいジオメトリをラインセグメントで既存のパスセグメントに接続することも可能です。connect パラメータが true であり、パスが空ではない場合、追加された Shape のジオメトリの初期 moveTolineTo セグメントに変わります。そのような接続 lineTo セグメントのデスティネーションの座標が現在開いているサブパスの終了座標と一致する場合、セグメントは不要なので省略されます。指定された Shape の屈曲規則は無視され、追加されたジオメトリはこのパスに指定された屈曲規則に制御されます。

パラメータ:
pi - このパスにジオメトリが追加される PathIterator
connect - 新しいジオメトリを既存のパスに接続するために初期 moveTo セグメントを lineTo セグメントに変えるかどうかを制御する boolean 値

getWindingRule

public int getWindingRule()
塗りつぶしスタイル屈曲規則を返します。

戻り値:
現在の屈曲規則を表す整数
関連項目:
WIND_EVEN_ODD, WIND_NON_ZERO, setWindingRule(int)

setWindingRule

public void setWindingRule(int rule)
このパスの屈曲規則を指定された値に設定します。

パラメータ:
rule - 指定された屈曲規則を表す整数
例外:
IllegalArgumentException - ruleWIND_EVEN_ODD でも WIND_NON_ZERO でもない場合
関連項目:
WIND_EVEN_ODD, WIND_NON_ZERO, getWindingRule()

getCurrentPoint

public Point2D getCurrentPoint()
パスの最後に追加されたもっとも新しい座標を Point2D オブジェクトとして返します。

戻り値:
パスの終了座標を格納する Point2D オブジェクト。パスに点がない場合は null

reset

public void reset()
パスを空にリセットします。追加位置はパスの先頭に設定し直され、すべての座標および点のタイプは破棄されます。


transform

public void transform(AffineTransform at)
指定された AffineTransform を使用して、このパスのジオメトリを変換します。ジオメトリは適切に変換され、これにより、このオブジェクトによって定義される境界が永久的に変更されます。

パラメータ:
at - 領域を変換するために使用される AffineTransform

createTransformedShape

public Shape createTransformedShape(AffineTransform at)
変換された、新しい Shape を返します。

パラメータ:
at - 新しい Shape を変換するために使用される AffineTransform
戻り値:
指定された AffineTransform で変換された、新しい Shape

getBounds

public Rectangle getBounds()
パスのバウンディングボックスを返します。

定義:
インタフェース Shape 内の getBounds
戻り値:
現在のパスの境界となる Rectangle オブジェクト
関連項目:
Shape.getBounds2D()

getBounds2D

public Rectangle2D getBounds2D()
パスのバウンディングボックスを返します。

定義:
インタフェース Shape 内の getBounds2D
戻り値:
現在のパスの境界となる Rectangle2D オブジェクト
関連項目:
Shape.getBounds()

contains

public boolean contains(double x,
                        double y)
指定された座標がこの Shape の境界内にあるかどうかを判定します。

定義:
インタフェース Shape 内の contains
パラメータ:
x, y - 指定された座標
戻り値:
指定された座標がこの Shape 内にある場合は true、そうでない場合は false

contains

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

定義:
インタフェース Shape 内の contains
パラメータ:
p - 指定された Point2D
戻り値:
この Shape が指定された Point2D を内包している場合は true、そうでない場合は false

contains

public boolean contains(double x,
                        double y,
                        double w,
                        double h)
指定された矩形領域がこの Shape の境界内にあるかどうかを判定します。

定義:
インタフェース Shape 内の contains
パラメータ:
x, y - 指定された座標
w - 指定された矩形領域の幅
h - 指定された矩形領域の高さ
戻り値:
この Shape が指定された矩形領域を内包している場合は true、そうでない場合は false
関連項目:
Area, Shape.intersects(double, double, double, double)

contains

public boolean contains(Rectangle2D r)
指定された Rectangle2D がこの Shape の境界内にあるかどうかを判定します。

定義:
インタフェース Shape 内の contains
パラメータ:
r - 指定された Rectangle2D
戻り値:
この Shape の境界内に指定された Rectangle2D がある場合は true、そうでない場合は false
関連項目:
Shape.contains(double, double, double, double)

intersects

public boolean intersects(double x,
                          double y,
                          double w,
                          double h)
この Shape の内部が、指定された矩形座標セットの内部と交差するかどうかを判定します。

定義:
インタフェース Shape 内の intersects
パラメータ:
x, y - 指定された座標
w - 指定された矩形座標の幅
h - 指定された矩形座標の高さ
戻り値:
この Shape と指定された矩形座標セットの内部が交差する場合は true、そうでない場合は false
関連項目:
Area

intersects

public boolean intersects(Rectangle2D r)
この Shape の内部が、指定された Rectangle2D の内部と交差するかどうかを判定します。

定義:
インタフェース Shape 内の intersects
パラメータ:
r - 指定された Rectangle2D
戻り値:
この Shape と指定された Rectangle2D の内部が交差する場合は true、そうでない場合は false
関連項目:
Shape.intersects(double, double, double, double)

getPathIterator

public PathIterator getPathIterator(AffineTransform at)
この Shape の境界に沿って繰り返し処理を行い、この Shape の輪郭のジオメトリへのアクセスを提供する PathIterator オブジェクトを返します。このクラスの反復子は、マルチスレッドに対して安全ではありません。つまりこの GeneralPath クラスは、この GeneralPath オブジェクトのジオメトリを変更すると、このジオメトリについてすでに進行中の繰り返し処理に影響を及ぼす場合があります。

定義:
インタフェース Shape 内の getPathIterator
パラメータ:
at - AffineTransform
戻り値:
この Shape の境界に沿って繰り返し処理を行い、この Shape の輪郭のジオメトリへのアクセスを提供する、新しい PathIterator

getPathIterator

public PathIterator getPathIterator(AffineTransform at,
                                    double flatness)
平坦化された Shape の境界に沿って繰り返し処理を行い、Shape の輪郭のジオメトリへのアクセスを提供する PathIterator オブジェクトを返します。このクラスの反復子は、マルチスレッドに対して安全ではありません。つまりこの GeneralPath クラスは、この GeneralPath オブジェクトのジオメトリを変更すると、このジオメトリについてすでに進行中の繰り返し処理に影響を及ぼす場合があります。

定義:
インタフェース Shape 内の getPathIterator
パラメータ:
at - AffineTransform
flatness - 曲線セグメントを作成するために使用されるラインセグメントが、元の曲線上の任意の点から離れることができる最大の距離
戻り値:
平坦化された Shape の境界に沿って繰り返し処理を行う新しい PathIterator

clone

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

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

JavaTM 2 Platform
Standard Ed. 5.0

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

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