- 直系の既知のサブクラス:
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 classPath2D.DoubleDoubleクラスは、座標が倍精度浮動小数点で格納される幾何学的パスを定義します。static classPath2D.FloatFloatクラスは、座標が単精度浮動小数点で格納される幾何学的パスを定義します。 -
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static intWIND_EVEN_ODDパスの内部を決める偶奇屈曲規則です。static intWIND_NON_ZEROパスの内部を決める非ゼロ屈曲規則です。 -
メソッドのサマリー
修飾子と型 メソッド 説明 abstract voidappend(PathIterator pi, boolean connect)指定されたPathIteratorオブジェクトの幾何学的図形をパスに追加します。その新しい幾何学的図形をライン・セグメントで既存のパス・セグメントに接続することも可能です。voidappend(Shape s, boolean connect)指定されたShapeオブジェクトの幾何学的図形をパスに追加します。その新しい幾何学的図形をライン・セグメントで既存のパス・セグメントに接続することも可能です。abstract Objectclone()このオブジェクトと同じクラスの新しいオブジェクトを作成します。voidclosePath()最後のmoveToの座標まで直線を描画して現在のサブパスを閉じます。booleancontains(double x, double y)指定された座標が、内側の定義によって記述されたShapeの境界の内側にあるかどうかをテストします。booleancontains(double x, double y, double w, double h)Shapeの内部に、指定された矩形領域が完全に含まれるかどうかをテストします。static booleancontains(PathIterator pi, double x, double y)指定された座標が指定されたPathIteratorの閉じた境界内にあるかどうかを判定します。static booleancontains(PathIterator pi, double x, double y, double w, double h)指定された矩形領域全体が指定されたPathIteratorの閉じた境界内にあるかどうかを判定します。static booleancontains(PathIterator pi, Point2D p)指定されたPoint2Dが指定されたPathIteratorの閉じた境界内にあるかどうかを判定します。static booleancontains(PathIterator pi, Rectangle2D r)指定されたRectangle2D全体が指定されたPathIteratorの閉じた境界内にあるかどうかを判定します。booleancontains(Point2D p)booleancontains(Rectangle2D r)Shapeの内部に、指定されたRectangle2Dが完全に含まれるかどうかをテストします。ShapecreateTransformedShape(AffineTransform at)このPath2Dの変換されたあとのバージョンを表す、新しいShapeを返します。abstract voidcurveTo(double x1, double y1, double x2, double y2, double x3, double y3)3つの新しい点によって定義される曲線セグメントをパスに追加します。曲線セグメントは、指定された点(x1,y1)と点(x2,y2)をベジェ制御点として使用して、現在の座標と指定された座標(x3,y3)の両方を通るベジェ曲線として描画します。RectanglegetBounds()Shapeを完全に囲む整数のRectangleを返します。Point2DgetCurrentPoint()パスの最後に追加されたもっとも新しい座標をPoint2Dオブジェクトとして返します。PathIteratorgetPathIterator(AffineTransform at, double flatness)Shapeの境界に沿って反復し、Shapeの輪郭の幾何学的図形の平坦化されたビューへのアクセスを提供するイテレータ・オブジェクトを返します。intgetWindingRule()塗りつぶしスタイル屈曲規則を返します。booleanintersects(double x, double y, double w, double h)Shapeの内部が指定された矩形領域の内部と交差しているかどうかをテストします。static booleanintersects(PathIterator pi, double x, double y, double w, double h)指定されたPathIteratorの内部が、指定された矩形座標セットの内部と交差するかどうかを判定します。static booleanintersects(PathIterator pi, Rectangle2D r)指定されたPathIteratorの内部が、指定されたRectangle2Dの内部と交差するかどうかを判定します。booleanintersects(Rectangle2D r)Shapeの内部が指定されたRectangle2Dの内部と交差しているかどうかをテストします。abstract voidlineTo(double x, double y)現在の座標から倍精度で新しく指定された座標まで直線を描画して点をパスに追加します。abstract voidmoveTo(double x, double y)倍精度で指定された座標に移動して点をパスに追加します。abstract voidquadTo(double x1, double y1, double x2, double y2)2つの新しい点によって定義される曲線セグメントをパスに追加します。曲線セグメントは、指定された点(x1,y1)を2次パラメトリック制御点として使用して、現在の座標と指定された座標(x2,y2)を通る2次曲線として描画します。voidreset()パスを空にリセットします。voidsetWindingRule(int rule)このパスの屈曲規則を指定された値に設定します。abstract voidtransform(AffineTransform at)指定されたAffineTransformを使用して、このパスの幾何学的図形を変換します。abstract voidtrimToSize()このPath2Dインスタンスの容量を現在のサイズに縮小します。クラス 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の幾何学的図形の初期moveToはlineToセグメントに変わります。 そのような接続lineToセグメントのデスティネーションの座標が現在開いているサブパスの終了座標と一致する場合、セグメントは不要なので省略されます。 指定されたShapeの屈曲規則は無視され、追加された幾何学的図形はこのパスに指定された屈曲規則に制御されます。- パラメータ:
s- このパスに幾何学的図形が追加されるShapeconnect- 新しい幾何学的図形を既存のパスに接続するために初期moveToセグメントをlineToセグメントに変えるかどうかを制御するboolean値- 導入されたバージョン:
- 1.6
-
append
public abstract void append(PathIterator pi, boolean connect)指定されたPathIteratorオブジェクトの幾何学的図形をパスに追加します。その新しい幾何学的図形をライン・セグメントで既存のパス・セグメントに接続することも可能です。connectパラメータがtrueであり、パスが空でない場合、追加されたShapeの幾何学的図形の初期moveToはlineToセグメントに変わります。 そのような接続lineToセグメントのデスティネーションの座標が現在開いているサブパスの終了座標と一致する場合、セグメントは不要なので省略されます。 指定されたShapeの屈曲規則は無視され、追加された幾何学的図形はこのパスに指定された屈曲規則に制御されます。- パラメータ:
pi- このパスに幾何学的図形が追加されるPathIteratorconnect- 新しい幾何学的図形を既存のパスに接続するために初期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-ruleがWIND_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を返します。 返されたRectangleがShapeを囲む最小のバウンディング・ボックスであるとは限りません。示されたRectangle内にShapeが完全に収まるというだけです。 また、Shapeが整数型の制限範囲を超える場合、返されたRectangleはShapeを完全に囲むことができないこともあります。 通常は、getBounds2Dメソッドの方が、表現の自由度が高いために、比較的ぴったりしたバウンディング・ボックスを返します。内側の定義によって、
shapeの定義する輪郭上の点が、返されたboundsオブジェクトに含まれていると見なされない状況が発生する場合があります。ただし、これは、これらの点が元のshapeにも含まれていないと見なされる場合のみです。pointがcontains(point)メソッドに従ってshapeの内側にある場合は、boundsのcontains(point)メソッドに従って、返されたRectangle境界オブジェクトの内側にある必要があります。 具体的には、次のようになります。shape.contains(x,y)には次が必要:bounds.contains(x,y)pointがshapeの内側にない場合は、引き続きboundsオブジェクトに含まれている可能性があります。bounds.contains(x,y)は次を示さない:shape.contains(x,y)- 定義:
getBounds、インタフェース:Shape- 戻り値:
Shapeを完全に囲む整数型のRectangle。- 導入されたバージョン:
- 1.6
- 関連項目:
Shape.getBounds2D()
-
contains
public static boolean contains(PathIterator pi, double x, double y)指定された座標が指定されたPathIteratorの閉じた境界内にあるかどうかを判定します。このメソッドは、
Shapeインタフェースの実装者がShape.contains(double, double)メソッドのサポートを実装するための基本的な機能を提供します。- パラメータ:
pi- 指定されたPathIteratorx- 指定されたX座標y- 指定されたY座標- 戻り値:
- 指定された座標が指定された
PathIteratorの境界内にある場合はtrue、そうでない場合はfalse - 導入されたバージョン:
- 1.6
-
contains
public static boolean contains(PathIterator pi, Point2D p)指定されたPoint2Dが指定されたPathIteratorの閉じた境界内にあるかどうかを判定します。このメソッドは、
Shapeインタフェースの実装者がShape.contains(Point2D)メソッドのサポートを実装するための基本的な機能を提供します。- パラメータ:
pi- 指定されたPathIteratorp- 指定されたPoint2D- 戻り値:
- 指定された座標が指定された
PathIteratorの境界内にある場合はtrue、そうでない場合はfalse - 導入されたバージョン:
- 1.6
-
contains
public final boolean contains(double x, double y)指定された座標が、内側の定義によって記述されたShapeの境界の内側にあるかどうかをテストします。 -
contains
public final boolean contains(Point2D p) -
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- 指定されたPathIteratorx- 指定された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- 指定されたPathIteratorr- 指定された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を返すことができます。-
intersectメソッドがtrueを返し、かつ -
Shapeに矩形領域が完全に含まれるかどうかを判定するための計算の負荷が非常に大きい。
Shapesによっては、Shapeに矩形領域が含まれている場合でもこのメソッドがfalseを返すことがあります。Areaクラスは、ほとんどのShapeオブジェクトより正確な幾何学的計算を実行するため、より的確な答えが必要な場合に使用できます。このメソッド・オブジェクトは、指定された矩形領域がパス・セグメントと交差していて、そのセグメントがパスの内部領域と外部領域の間の境界を表さない場合にも、falseを返すことがあります。 そのようなセグメントが
WIND_NON_ZERO屈曲規則を持つパスの一部である場合、またはセグメント・セット間に外部領域が存在しない2つのセグメント・セットが相殺されるようにセグメントが逆方向に再トレースされる場合、セグメントは完全にパスの内部領域側にある可能性があります。 セグメントがパスの内部領域の実際の境界を表すかどうかを判断するには、パスのすべてのセグメントと屈曲規則に対する大量の計算が必要です。そのため、そのような判断はこの実装の範囲を超えています。- 定義:
contains、インタフェース:Shape- パラメータ:
x- 指定された矩形領域の左上隅のX座標y- 指定された矩形領域の左上隅のY座標w- 指定された矩形領域の幅h- 指定された矩形領域の高さ- 戻り値:
Shapeの内部に、指定された矩形領域が完全に含まれる場合はtrue、それ以外の場合、または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を返すことができます。-
intersectメソッドがtrueを返し、かつ -
ShapeにRectangle2Dが完全に含まれるかどうかを判定するための計算の負荷が非常に大きい。
Shapesによっては、ShapeにRectangle2Dが含まれている場合でもこのメソッドがfalseを返すことがあります。Areaクラスは、ほとんどのShapeオブジェクトより正確な幾何学的計算を実行するため、より的確な答えが必要な場合に使用できます。このメソッド・オブジェクトは、指定された矩形領域がパス・セグメントと交差していて、そのセグメントがパスの内部領域と外部領域の間の境界を表さない場合にも、falseを返すことがあります。 そのようなセグメントが
WIND_NON_ZERO屈曲規則を持つパスの一部である場合、またはセグメント・セット間に外部領域が存在しない2つのセグメント・セットが相殺されるようにセグメントが逆方向に再トレースされる場合、セグメントは完全にパスの内部領域側にある可能性があります。 セグメントがパスの内部領域の実際の境界を表すかどうかを判断するには、パスのすべてのセグメントと屈曲規則に対する大量の計算が必要です。そのため、そのような判断はこの実装の範囲を超えています。- 定義:
contains、インタフェース:Shape- パラメータ:
r- 指定されたRectangle2D- 戻り値:
Shapeの内部にRectangle2Dが完全に含まれる場合はtrue、それ以外の場合、またはShapeにRectangle2Dが含まれ、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- 指定されたPathIteratorx- 指定された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- 指定されたPathIteratorr- 指定された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が交差している可能性が高いが、 - この共通部分を正確に判断する計算の負荷がかなり大きい。
Shapesによっては、矩形領域がShapeと交差していない場合でもこのメソッドがtrueを返すことがあります。Areaクラスは、ほとんどのShapeオブジェクトより正確な、幾何学的な共通部分の計算を実行するため、より的確な答えが必要な場合に使用できます。このメソッド・オブジェクトは、指定された矩形領域がパス・セグメントと交差していて、そのセグメントがパスの内部領域と外部領域の間の境界を表さない場合にも、trueを返すことがあります。 セグメント・セット間に内部領域が存在しない2つのセグメント・セットが相殺されるようにセグメントのセットが逆方向に再トレースされる場合に、このような状態が発生することがあります。 セグメントがパスの内部領域の実際の境界を表すかどうかを判断するには、パスのすべてのセグメントと屈曲規則に対する大量の計算が必要です。そのため、そのような判断はこの実装の範囲を超えています。
- 定義:
intersects、インタフェース:Shape- パラメータ:
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を返すことができます。-
Rectangle2DとShapeが交差している可能性が高いが、 - この共通部分を正確に判断する計算の負荷がかなり大きい。
Shapesによっては、Rectangle2DがShapeと交差していない場合でもこのメソッドがtrueを返すことがあります。Areaクラスは、ほとんどのShapeオブジェクトより正確な、幾何学的な共通部分の計算を実行するため、より的確な答えが必要な場合に使用できます。このメソッド・オブジェクトは、指定された矩形領域がパス・セグメントと交差していて、そのセグメントがパスの内部領域と外部領域の間の境界を表さない場合にも、trueを返すことがあります。 セグメント・セット間に内部領域が存在しない2つのセグメント・セットが相殺されるようにセグメントのセットが逆方向に再トレースされる場合に、このような状態が発生することがあります。 セグメントがパスの内部領域の実際の境界を表すかどうかを判断するには、パスのすべてのセグメントと屈曲規則に対する大量の計算が必要です。そのため、そのような判断はこの実装の範囲を超えています。
- 定義:
intersects、インタフェース:Shape- パラメータ:
r- 指定されたRectangle2D- 戻り値:
Shapeの内部と指定されたRectangle2Dの内部が交差しているか、またはどちらも交差している可能性が高いが、負荷が大きすぎて共通部分の計算を実行できない場合はtrue、それ以外の場合はfalse。- 導入されたバージョン:
- 1.6
- 関連項目:
Shape.intersects(double, double, double, double)
-
-
getPathIterator
public final PathIterator getPathIterator(AffineTransform at, double flatness)Shapeの境界に沿って反復し、Shapeの輪郭の幾何学的図形の平坦化されたビューへのアクセスを提供するイテレータ・オブジェクトを返します。イテレータが返すのは、ポイント型SEG_MOVETO、SEG_LINETO、およびSEG_CLOSEだけです。
オプションの
AffineTransformが指定されると、反復処理で返される座標がそれに応じて変換されます。曲線セグメントの分割の量は、平坦化されない変換を受けた曲線上の点が、返される平坦化されたパス・セグメントからもっとも離れる距離を指定する
flatnessパラメータによって制御されます。 平坦化された輪郭線の精度に対して予告なしに制限が加えられることがあり、この場合、非常に小さな平坦化パラメータが大きな値として扱われることがあります。 この制限は、使用される特定の実装によって決まります。このメソッドを呼び出すたびに、同時に使用されているほかのすべての
PathIteratorオブジェクトとは無関係に、Shapeオブジェクトの幾何学的図形をトラバースする新しいPathIteratorオブジェクトが返されます。Shapeインタフェースを実装するオブジェクトにより、進行中の反復が、このような反復中に発生する可能性のある元のオブジェクトの幾何学的図形へのどのような変更からも切り離されることを推奨しますが、これは保証されません。このクラスのイテレータは、マルチ・スレッドに対して安全ではありません。つまりこの
Path2Dクラスでは、このPath2Dオブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の反復処理に影響を及ぼす場合があります。- 定義:
getPathIterator、インタフェース:Shape- パラメータ:
at- 反復処理で返されるときに座標に適用されるオプションのAffineTransform、または変換されていない座標が必要な場合はnullflatness- 曲線セグメントを近似するために使用されるライン・セグメントが、元の曲線上の任意の点から離れることができる最大の距離- 戻り値:
Shapeの幾何学的図形の平坦化されたビューを独立してトラバースする新しいPathIterator。- 導入されたバージョン:
- 1.6
-
clone
public abstract Object clone()このオブジェクトと同じクラスの新しいオブジェクトを作成します。- オーバーライド:
clone、クラス:Object- 戻り値:
- このインスタンスの複製。
- 例外:
OutOfMemoryError- 十分なメモリーがない場合。- 導入されたバージョン:
- 1.6
- 関連項目:
Cloneable
-
trimToSize
public abstract void trimToSize()このPath2Dインスタンスの容量を現在のサイズに縮小します。 アプリケーションは、この操作を使用してパスのストレージを最小限に抑えることができます。- 導入されたバージョン:
- 10
-