JavaTM Platform
Standard Ed. 6

java.awt.geom
クラス Path2D

java.lang.Object
  上位を拡張 java.awt.geom.Path2D
すべての実装されたインタフェース:
Shape, Cloneable
直系の既知のサブクラス:
Path2D.Double, Path2D.Float

public abstract class Path2D
extends Object
implements Shape, Cloneable

Path2D クラスは、単純ですが柔軟性のある、任意の幾何学的パスを表す形状を提供します。このクラスは、パスのすべてのセグメント型と屈曲規則を含む PathIterator インタフェースによって、繰り返し処理できる任意のパスを完全に表すことができるほか、Shape インタフェースの基本的な当たり判定のメソッドをすべて実装します。  

浮動小数点精度で表したり使用したりすることができるデータを扱うときは、Path2D.Float を使用します。倍精度の正確さまたは範囲を必要とするデータに対しては Path2D.Double を使用します。  

Path2D は、幾何学的パスの基本的な構築および管理でまさに必要となる機能を備えているほか、前述のインタフェースに若干の解釈を加えたものを実装しています。単純な当たり判定だけでなく、閉じた幾何学的形状の内部を操作するほうが便利な場合は、Area クラスを使用すると、閉じた図形に特化した追加機能を使用できます。どちらのクラスも表向きは Shape インタフェースを実装していますが、その目的が異なります。組み合わせて使用することにより、幾何学的形状に対して便利な観点を 2 つ提供します。Path2D は主にパスセグメントによって形成される軌跡を扱うのに対して、Area は 2D 幾何学的空間の閉じた領域の解釈や操作が中心です。  

PathIterator インタフェースには、パスを構成するセグメントの型と、パスの内側または外側にある領域を特定する方法を制御する屈曲規則について、詳細な説明が用意されています。

導入されたバージョン:
1.6

入れ子のクラスの概要
static class Path2D.Double
          Double クラスは、座標が倍精度浮動小数点で格納される幾何学的パスを定義します。
static class Path2D.Float
          Float クラスは、座標が単精度浮動小数点で格納される幾何学的パスを定義します。
 
フィールドの概要
static int WIND_EVEN_ODD
          パスの内部を決める偶奇屈曲規則です。
static int WIND_NON_ZERO
          パスの内部を決める非ゼロ屈曲規則です。
 
メソッドの概要
abstract  void append(PathIterator pi, boolean connect)
          指定された PathIterator オブジェクトの幾何学的図形をパスに追加します。
 void append(Shape s, boolean connect)
          指定された Shape オブジェクトの幾何学的図形をパスに追加します。
abstract  Object clone()
          このオブジェクトと同じクラスの新しいオブジェクトを作成します。
 void closePath()
          最後の moveTo の座標まで直線を描画して現在のサブパスを閉じます。
 boolean contains(double x, double y)
          指定された座標が Shape の境界内にあるかどうかを判定します。
 boolean contains(double x, double y, double w, double h)
          Shape の内部領域が、指定された矩形領域を完全に包含するかどうかを判定します。
static boolean contains(PathIterator pi, double x, double y)
          指定された座標が指定された PathIterator の閉じた境界内にあるかどうかを判定します。
static boolean contains(PathIterator pi, double x, double y, double w, double h)
          指定された矩形領域全体が指定された PathIterator の閉じた境界内にあるかどうかを判定します。
static boolean contains(PathIterator pi, Point2D p)
          指定された Point2D が指定された PathIterator の閉じた境界内にあるかどうかを判定します。
static boolean contains(PathIterator pi, Rectangle2D r)
          指定された Rectangle2D 全体が指定された PathIterator の閉じた境界内にあるかどうかを判定します。
 boolean contains(Point2D p)
          指定された Point2DShape の境界内にあるかどうかを判定します。
 boolean contains(Rectangle2D r)
          Shape の内部が、指定された Rectangle2D を完全に内包するかどうかを判定します。
 Shape createTransformedShape(AffineTransform at)
          この Path2D の変換されたあとのバージョンを表す、新しい Shape を返します。
abstract  void curveTo(double x1, double y1, double x2, double y2, double x3, double y3)
          3 つの新しい点によって定義される曲線セグメントをパスに追加します。
 Rectangle getBounds()
          Shape を完全に囲む整数型の Rectangle を返します。
 Point2D getCurrentPoint()
          パスの最後に追加されたもっとも新しい座標を Point2D オブジェクトとして返します。
 PathIterator getPathIterator(AffineTransform at, double flatness)
          Shape の境界に沿って繰り返し処理を行い、Shape の輪郭の幾何学的図形の平坦化されたビューにアクセスできるようにする反復子オブジェクトを返します。
 int getWindingRule()
          塗りつぶしスタイル屈曲規則を返します。
 boolean intersects(double x, double y, double w, double h)
          Shape の内部領域が、指定された矩形領域の内部領域と交差するかどうかを判定します。
static boolean intersects(PathIterator pi, double x, double y, double w, double h)
          指定された PathIterator の内部が、指定された矩形座標セットの内部と交差するかどうかを判定します。
static boolean intersects(PathIterator pi, Rectangle2D r)
          指定された PathIterator の内部領域が指定された Rectangle2D の内部領域と交差するかどうかを判定します。
 boolean intersects(Rectangle2D r)
          Shape の内部が、指定された Rectangle2D の内部と交差するかどうかを判定します。
abstract  void lineTo(double x, double y)
          現在の座標から倍精度で新しく指定された座標まで直線を描画して点をパスに追加します。
abstract  void moveTo(double x, double y)
          倍精度で指定された座標に移動して点をパスに追加します。
abstract  void quadTo(double x1, double y1, double x2, double y2)
          2 つの新しい点によって定義される曲線セグメントをパスに追加します。
 void reset()
          パスを空にリセットします。
 void setWindingRule(int rule)
          このパスの屈曲規則を指定された値に設定します。
abstract  void transform(AffineTransform at)
          指定された AffineTransform を使用して、このパスの幾何学的図形を変換します。
 
クラス java.lang.Object から継承されたメソッド
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース java.awt.Shape から継承されたメソッド
getBounds2D, getPathIterator
 

フィールドの詳細

WIND_EVEN_ODD

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

導入されたバージョン:
1.6
関連項目:
PathIterator.WIND_EVEN_ODD, 定数フィールド値

WIND_NON_ZERO

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

導入されたバージョン:
1.6
関連項目:
PathIterator.WIND_NON_ZERO, 定数フィールド値
メソッドの詳細

moveTo

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

パラメータ:
x - 指定された X 座標
y - 指定された Y 座標
導入されたバージョン:
1.6

lineTo

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

パラメータ:
x - 指定された X 座標
y - 指定された Y 座標
導入されたバージョン:
1.6

quadTo

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

パラメータ:
x1 - 2 次制御点の X 座標
y1 - 2 次制御点の Y 座標
x2 - 最後の終点の X 座標
y2 - 最後の終点の Y 座標
導入されたバージョン:
1.6

curveTo

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

パラメータ:
x1 - 最初のベジェ制御点の X 座標
y1 - 最初のベジェ制御点の Y 座標
x2 - 2 番目のベジェ制御点の X 座標
y2 - 2 番目のベジェ制御点の Y 座標
x3 - 最後の終点の X 座標
y3 - 最後の終点の Y 座標
導入されたバージョン:
1.6

closePath

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

導入されたバージョン:
1.6

append

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

パラメータ:
s - このパスに幾何学的図形が追加される Shape
connect - 新しい幾何学的図形を既存のパスに接続するために 初期 moveTo セグメントを lineTo セグメントに 変えるかどうかを制御する boolean 値
導入されたバージョン:
1.6

append

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

パラメータ:
pi - このパスに幾何学的図形が追加される PathIterator
connect - 新しい幾何学的図形を既存のパスに接続するために 初期 moveTo セグメントを lineTo セグメントに 変えるかどうかを制御する boolean 値
導入されたバージョン:
1.6

getWindingRule

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

戻り値:
現在の屈曲規則を表す整数
導入されたバージョン:
1.6
関連項目:
WIND_EVEN_ODD, WIND_NON_ZERO, setWindingRule(int)

setWindingRule

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

パラメータ:
rule - 指定された屈曲規則を表す 整数
例外:
IllegalArgumentException - 次の条件が成立する場合: ruleWIND_EVEN_ODD でも WIND_NON_ZERO でも ない場合
導入されたバージョン:
1.6
関連項目:
getWindingRule()

getCurrentPoint

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

戻り値:
パスの終了座標を格納する Point2D オブジェクト、 パスに点がない場合は null
導入されたバージョン:
1.6

reset

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

導入されたバージョン:
1.6

transform

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

パラメータ:
at - 領域を変換するのに使う AffineTransform
導入されたバージョン:
1.6

createTransformedShape

public final Shape createTransformedShape(AffineTransform at)
この Path2D の変換されたあとのバージョンを表す、新しい Shape を返します。戻り値の正確な型と座標の精度は、このメソッドでは指定されません。このメソッドは、変換されたジオメトリ用にこの Path2D が現在維持している精度よりも低い精度を含まない Shape を返しますが、より高い精度が含まれない場合もあります。結果での精度とストレージサイズのトレードオフが重要な場合は、選択を明確にするために、Path2D.Float サブクラスおよび Path2D.Double サブクラスの簡易コンストラクタを使用してください。

パラメータ:
at - 新しい Shape を変換するのに使う AffineTransform
戻り値:
指定された AffineTransform で変換された、 新しい Shape
導入されたバージョン:
1.6

getBounds

public final Rectangle getBounds()
Shape を完全に囲む整数型の Rectangle を返します。返された RectangleShape を囲む最小のバウンディングボックスであるとは限りません。 示された Rectangle 内に Shape が完全に収まるというだけです。また、Shape が整数型の制限範囲を超える場合、返された RectangleShape を完全に囲むことができないこともあります。通常は、getBounds2D メソッドの方が、表現の自由度が高いために、比較的ぴったりしたバウンディングボックスを返します。

定義:
インタフェース Shape 内の getBounds
戻り値:
Shape を完全に囲む整数型の Rectangle
導入されたバージョン:
1.6
関連項目:
Shape.getBounds2D()

contains

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

このメソッドは、Shape インタフェースの実装者が Shape.contains(double, double) メソッドのサポートを実装するための基本的な機能を提供します。

パラメータ:
pi - 指定された PathIterator
x - 指定された X 座標
y - 指定された Y 座標
戻り値:
指定された座標が指定された PathIterator 内にある場合は true、そうでない場合は false
導入されたバージョン:
1.6

contains

public static boolean contains(PathIterator pi,
                               Point2D p)
指定された Point2D が指定された PathIterator の閉じた境界内にあるかどうかを判定します。  

このメソッドは、Shape インタフェースの実装者が Shape.contains(Point2D) メソッドのサポートを実装するための基本的な機能を提供します。

パラメータ:
pi - 指定された PathIterator
p - 指定された Point2D
戻り値:
指定された座標が指定された PathIterator 内にある場合は true、そうでない場合は false
導入されたバージョン:
1.6

contains

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

定義:
インタフェース Shape 内の contains
パラメータ:
x - 判定対象の指定された X 座標
y - 判定対象の指定された Y 座標
戻り値:
指定された座標が Shape の 境界内にある場合は true、そうでない場合は false
導入されたバージョン:
1.6

contains

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

定義:
インタフェース Shape 内の contains
パラメータ:
p - 判定対象の、指定された Point2D
戻り値:
指定された Point2DShape の 境界内にある場合は true、 そうでない場合は false
導入されたバージョン:
1.6

contains

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

このメソッドは、Shape インタフェースの実装者が Shape.contains(double, double, double, double) メソッドのサポートを実装するための基本的な機能を提供します。  

このメソッドオブジェクトは、指定された矩形領域がパスセグメントと交差していて、そのセグメントがパスの内部領域と外部領域の間の境界を表さない場合にも、false を返すことがあります。そのようなセグメントが WIND_NON_ZERO 屈曲規則を持つパスの一部である場合、またはセグメントセット間に外部領域が存在しない 2 つのセグメントセットが相殺されるようにセグメントが逆方向に再トレースされる場合、セグメントは完全にパスの内部領域側にある可能性があります。セグメントがパスの内部領域の実際の境界を表すかどうかを判断するには、パスのすべてのセグメントと屈曲規則に対する大量の計算が必要です。そのため、そのような判断はこの実装の範囲を超えています。

パラメータ:
pi - 指定された PathIterator
x - 指定された X 座標
y - 指定された Y 座標
w - 指定された矩形領域の幅
h - 指定された矩形領域の高さ
戻り値:
指定された PathIterator が指定された矩形領域を含む場合は true、そうでない場合は false
導入されたバージョン:
1.6

contains

public static boolean contains(PathIterator pi,
                               Rectangle2D r)
指定された Rectangle2D 全体が指定された PathIterator の閉じた境界内にあるかどうかを判定します。  

このメソッドは、Shape インタフェースの実装者が Shape.contains(Rectangle2D) メソッドのサポートを実装するための基本的な機能を提供します。  

このメソッドオブジェクトは、指定された矩形領域がパスセグメントと交差していて、そのセグメントがパスの内部領域と外部領域の間の境界を表さない場合にも、false を返すことがあります。そのようなセグメントが WIND_NON_ZERO 屈曲規則を持つパスの一部である場合、またはセグメントセット間に外部領域が存在しない 2 つのセグメントセットが相殺されるようにセグメントが逆方向に再トレースされる場合、セグメントは完全にパスの内部領域側にある可能性があります。セグメントがパスの内部領域の実際の境界を表すかどうかを判断するには、パスのすべてのセグメントと屈曲規則に対する大量の計算が必要です。そのため、そのような判断はこの実装の範囲を超えています。

パラメータ:
pi - 指定された PathIterator
r - 指定された Rectangle2D
戻り値:
指定された PathIterator が指定された Rectangle2D を含む場合は true、そうでない場合は false
導入されたバージョン:
1.6

contains

public final boolean contains(double x,
                              double y,
                              double w,
                              double h)
Shape の内部領域が、指定された矩形領域を完全に包含するかどうかを判定します。矩形領域全体が Shape に包含されていると見なされるためには、矩形領域内にあるすべての座標が Shape 内に位置している必要があります。  

Shape.contains() メソッドを使用すると、次のような場合に Shape 実装は false を返すことがあります。

つまり、Shape によっては、Shape が矩形領域を包含する場合でもこのメソッドが false を返すことがあります。Area クラスは、ほとんどの Shape オブジェクトのより精密な幾何学的計算を行うため、より正確な結果が必要な場合に使用できます。  

このメソッドオブジェクトは、指定された矩形領域がパスセグメントと交差していて、そのセグメントがパスの内部領域と外部領域の間の境界を表さない場合にも、false を返すことがあります。そのようなセグメントが WIND_NON_ZERO 屈曲規則を持つパスの一部である場合、またはセグメントセット間に外部領域が存在しない 2 つのセグメントセットが相殺されるようにセグメントが逆方向に再トレースされる場合、セグメントは完全にパスの内部領域側にある可能性があります。セグメントがパスの内部領域の実際の境界を表すかどうかを判断するには、パスのすべてのセグメントと屈曲規則に対する大量の計算が必要です。そのため、そのような判断はこの実装の範囲を超えています。

定義:
インタフェース Shape 内の contains
パラメータ:
x - 指定された矩形領域の 左上隅の X 座標
y - 指定された矩形領域の 左上隅の Y 座標
w - 指定された矩形領域の幅
h - 指定された矩形領域の高さ
戻り値:
Shape の内部領域が、指定された矩形領域を 完全に包含する場合は true、 そうでない場合は false。 また、Shape が矩形領域を包含し、 intersects メソッドが true を返し、 負荷が大き過ぎて包含の計算が行えない場合も false
導入されたバージョン:
1.6
関連項目:
Area, Shape.intersects(double, double, double, double)

contains

public final boolean contains(Rectangle2D r)
Shape の内部が、指定された Rectangle2D を完全に内包するかどうかを判定します。Shape.contains() メソッドを使用すると、次のような場合に Shape 実装は false を返すことがあります。 つまり、Shape によっては、ShapeRectangle2D を包含する場合でもこのメソッドが false を返すことがあります。Area クラスは、ほとんどの Shape オブジェクトのより精密な幾何学的計算を行うため、より正確な結果が必要な場合に使用できます。  

このメソッドオブジェクトは、指定された矩形領域がパスセグメントと交差していて、そのセグメントがパスの内部領域と外部領域の間の境界を表さない場合にも、false を返すことがあります。そのようなセグメントが WIND_NON_ZERO 屈曲規則を持つパスの一部である場合、またはセグメントセット間に外部領域が存在しない 2 つのセグメントセットが相殺されるようにセグメントが逆方向に再トレースされる場合、セグメントは完全にパスの内部領域側にある可能性があります。セグメントがパスの内部領域の実際の境界を表すかどうかを判断するには、パスのすべてのセグメントと屈曲規則に対する大量の計算が必要です。そのため、そのような判断はこの実装の範囲を超えています。

定義:
インタフェース Shape 内の contains
パラメータ:
r - 指定された Rectangle2D
戻り値:
Shape の内部領域が、Rectangle2D を 完全に包含する場合は true、 そうでない場合は false。 また、ShapeRectangle2D を包含し、 intersects メソッドが true を返し、 負荷が大き過ぎて包含の計算が行えない場合も false
導入されたバージョン:
1.6
関連項目:
Shape.contains(double, double, double, double)

intersects

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

このメソッドは、Shape インタフェースの実装者が Shape.intersects(double, double, double, double) メソッドのサポートを実装するための基本的な機能を提供します。  

このメソッドオブジェクトは、指定された矩形領域がパスセグメントと交差していて、そのセグメントがパスの内部領域と外部領域の間の境界を表さない場合にも、true を返すことがあります。セグメントセット間に内部領域が存在しない 2 つのセグメントセットが相殺されるようにセグメントのセットが逆方向に再トレースされる場合に、このような状態が発生することがあります。セグメントがパスの内部領域の実際の境界を表すかどうかを判断するには、パスのすべてのセグメントと屈曲規則に対する大量の計算が必要です。そのため、そのような判断はこの実装の範囲を超えています。

パラメータ:
pi - 指定された PathIterator
x - 指定された X 座標
y - 指定された Y 座標
w - 指定された矩形座標の幅
h - 指定された矩形座標の高さ
戻り値:
指定された PathIterator と指定された矩形座標セットの 内部領域が交差する場合は true、 そうでない場合は false
導入されたバージョン:
1.6

intersects

public static boolean intersects(PathIterator pi,
                                 Rectangle2D r)
指定された PathIterator の内部領域が指定された Rectangle2D の内部領域と交差するかどうかを判定します。  

このメソッドは、Shape インタフェースの実装者が Shape.intersects(Rectangle2D) メソッドのサポートを実装するための基本的な機能を提供します。  

このメソッドオブジェクトは、指定された矩形領域がパスセグメントと交差していて、そのセグメントがパスの内部領域と外部領域の間の境界を表さない場合にも、true を返すことがあります。セグメントセット間に内部領域が存在しない 2 つのセグメントセットが相殺されるようにセグメントのセットが逆方向に再トレースされる場合に、このような状態が発生することがあります。セグメントがパスの内部領域の実際の境界を表すかどうかを判断するには、パスのすべてのセグメントと屈曲規則に対する大量の計算が必要です。そのため、そのような判断はこの実装の範囲を超えています。

パラメータ:
pi - 指定された PathIterator
r - 指定された Rectangle2D
戻り値:
指定された PathIterator と指定された Rectangle2D の 内部領域が交差する場合は true、 そうでない場合は false
導入されたバージョン:
1.6

intersects

public final boolean intersects(double x,
                                double y,
                                double w,
                                double h)
Shape の内部領域が、指定された矩形領域の内部領域と交差するかどうかを判定します。Shape の内部領域と指定された矩形領域の両方に含まれる点がある場合、矩形領域は Shape と交差していると見なされます。  

Shape.intersects() メソッドを使用すると、次のような場合に Shape 実装は true を返すことがあります。

つまり、Shape によっては、矩形領域が Shape と交差しない場合でもこのメソッドが true を返すことがあります。Area クラスは、ほとんどの Shape オブジェクトの幾何学的な共通部分のより精密な計算を行うため、より正確な結果が必要な場合に使用できます。  

このメソッドオブジェクトは、指定された矩形領域がパスセグメントと交差していて、そのセグメントがパスの内部領域と外部領域の間の境界を表さない場合にも、true を返すことがあります。セグメントセット間に内部領域が存在しない 2 つのセグメントセットが相殺されるようにセグメントのセットが逆方向に再トレースされる場合に、このような状態が発生することがあります。セグメントがパスの内部領域の実際の境界を表すかどうかを判断するには、パスのすべてのセグメントと屈曲規則に対する大量の計算が必要です。そのため、そのような判断はこの実装の範囲を超えています。

定義:
インタフェース Shape 内の intersects
パラメータ:
x - 指定された矩形領域の 左上隅の X 座標
y - 指定された矩形領域の 左上隅の Y 座標
w - 指定された矩形領域の幅
h - 指定された矩形領域の高さ
戻り値:
Shape の内部領域と矩形領域の内部領域が交差する場合、 または交差する可能性が高いが、負荷が大き過ぎて 共通部分の計算を行えない場合も true、 そうでない場合は false
導入されたバージョン:
1.6
関連項目:
Area

intersects

public final boolean intersects(Rectangle2D r)
Shape の内部が、指定された Rectangle2D の内部と交差するかどうかを判定します。Shape.intersects() メソッドを使用すると、次のような場合に Shape 実装は true を返すことがあります。 つまり、Shape によっては、Rectangle2DShape と交差しない場合でもこのメソッドが true を返すことがあります。Area クラスは、ほとんどの Shape オブジェクトの幾何学的な共通部分のより精密な計算を行うため、より正確な結果が必要な場合に使用できます。  

このメソッドオブジェクトは、指定された矩形領域がパスセグメントと交差していて、そのセグメントがパスの内部領域と外部領域の間の境界を表さない場合にも、true を返すことがあります。セグメントセット間に内部領域が存在しない 2 つのセグメントセットが相殺されるようにセグメントのセットが逆方向に再トレースされる場合に、このような状態が発生することがあります。セグメントがパスの内部領域の実際の境界を表すかどうかを判断するには、パスのすべてのセグメントと屈曲規則に対する大量の計算が必要です。そのため、そのような判断はこの実装の範囲を超えています。

定義:
インタフェース Shape 内の intersects
パラメータ:
r - 指定された Rectangle2D
戻り値:
Shape の内部領域と 指定された Rectangle2D の内部領域が交差する場合、 または交差する可能性が高いが、負荷が大き過ぎて 共通部分の計算を行えない場合も true、 そうでない場合は false
導入されたバージョン:
1.6
関連項目:
Shape.intersects(double, double, double, double)

getPathIterator

public PathIterator getPathIterator(AffineTransform at,
                                    double flatness)
Shape の境界に沿って繰り返し処理を行い、Shape の輪郭の幾何学的図形の平坦化されたビューにアクセスできるようにする反復子オブジェクトを返します。  

反復子が返すのは、ポイント型 SEG_MOVETO、SEG_LINETO、および SEG_CLOSE だけです。  

オプションの AffineTransform が指定されると、繰り返し処理で返される座標がそれに応じて変換されます。  

曲線セグメントの分割の量は、平坦化されない変換を受けた曲線上の点が、返される平坦化されたパスセグメントからもっとも離れる距離を指定する flatness パラメータによって制御されます。平坦化された輪郭線の精度に対して予告なしに制限が加えられることがあり、この場合、非常に小さな平坦化パラメータが大きな値として扱われることがあります。この制限は、使用される特定の実装によって決まります。  

このメソッドを呼び出すたびに、同時に使用されているほかのすべての PathIterator オブジェクトとは無関係に、Shape オブジェクトの幾何学的図形を移動する新しい PathIterator オブジェクトが返されます。  

Shape インタフェースを実装するオブジェクトは、実行中の繰り返し処理を元のオブジェクトの幾何学的図形に対して発生する可能性のある変更から分離させることが推奨されますが、これは保証されてはいません。  

このクラスの反復子は、マルチスレッドに対して安全ではありません。つまり Path2D クラスでは、この Path2D オブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の繰り返し処理に影響を及ぼす場合があります。

定義:
インタフェース Shape 内の getPathIterator
パラメータ:
at - 繰り返し処理で返されるときに座標に適用される 任意の AffineTransform、 変換されていない座標が必要な場合は null
flatness - 曲線セグメントを近似するために使用される ラインセグメントが、元の曲線上の任意の点から 離れることができる最大の距離
戻り値:
Shape の幾何学的図形の平坦化されたビューを 独立して移動する新しい PathIterator
導入されたバージョン:
1.6

clone

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

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

JavaTM Platform
Standard Ed. 6

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

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