モジュール java.desktop
パッケージ java.awt.geom

クラスPath2D

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

public abstract sealed class Path2D extends Object implements Shape, Cloneable permits Path2D.Double, Path2D.Float
Path2Dクラスは、単純ですが柔軟性のある、任意の幾何学的パスを表す形状を提供します。 これは、PathIteratorインタフェースによって反復できるすべてのパス(そのセグメントのタイプと屈曲規則のすべてを含む)を完全に表すことができるほか、Shapeインタフェースの基本的な当たり判定メソッドをすべて実装します。

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

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

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

シール済クラス階層グラフ:
Path2Dのシール済クラス階層グラフPath2Dのシール済クラス階層グラフ
導入されたバージョン:
1.6
  • ネストされたクラスのサマリー

    ネストされたクラス
    修飾子と型
    クラス
    説明
    static class 
    Doubleクラスは、座標が倍精度浮動小数点で格納される幾何学的パスを定義します。
    static class 
    Floatクラスは、座標が単精度浮動小数点で格納される幾何学的パスを定義します。
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final int
    パスの内部を決める偶奇屈曲規則です。
    static final int
    パスの内部を決める非ゼロ屈曲規則です。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    abstract void
    append(PathIterator pi, boolean connect)
    指定されたPathIteratorオブジェクトの幾何学的図形をパスに追加します。その新しい幾何学的図形をライン・セグメントで既存のパス・セグメントに接続することも可能です。
    final void
    append(Shape s, boolean connect)
    指定されたShapeオブジェクトの幾何学的図形をパスに追加します。その新しい幾何学的図形をライン・セグメントで既存のパス・セグメントに接続することも可能です。
    abstract Object
    このオブジェクトと同じクラスの新しいオブジェクトを作成します。
    final void
    最後のmoveToの座標まで直線を描画して現在のサブパスを閉じます。
    final boolean
    contains(double x, double y)
    「内部性の定義」で説明されているように、指定された座標がShapeの境界内にあるかどうかをテストします。
    final 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
    指定されたPoint2Dが指定されたPathIteratorの閉じた境界内にあるかどうかを判定します。
    static boolean
    指定されたRectangle2D全体が指定されたPathIteratorの閉じた境界内にあるかどうかを判定します。
    final boolean
    指定されたPoint2Dが、内側の定義によって記述されたShapeの境界の内側にあるかどうかをテストします。
    final boolean
    Shapeの内部に、指定されたRectangle2Dが完全に含まれるかどうかをテストします。
    final Shape
    このPath2Dの変換されたあとのバージョンを表す、新しいShapeを返します。
    abstract void
    curveTo(double x1, double y1, double x2, double y2, double x3, double y3)
    3つの新しい点によって定義される曲線セグメントをパスに追加します。曲線セグメントは、指定された点(x1,y1)と点(x2,y2)をベジェ制御点として使用して、現在の座標と指定された座標(x3,y3)の両方を通るベジェ曲線として描画します。
    final Rectangle
    Shapeを完全に囲む整数のRectangleを返します。
    final Point2D
    パスの最後に追加されたもっとも新しい座標をPoint2Dオブジェクトとして返します。
    getPathIterator(AffineTransform at, double flatness)
    Shapeの境界に沿って反復し、Shapeの輪郭の幾何学的図形の平坦化されたビューへのアクセスを提供するイテレータ・オブジェクトを返します。
    final int
    塗りつぶしスタイル屈曲規則を返します。
    final 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
    指定されたPathIteratorの内部が、指定されたRectangle2Dの内部と交差するかどうかを判定します。
    final boolean
    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つの新しい点によって定義される曲線セグメントをパスに追加します。曲線セグメントは、指定された点(x1,y1)を2次パラメトリック制御点として使用して、現在の座標と指定された座標(x2,y2)を通る2次曲線として描画します。
    final void
    パスを空にリセットします。
    final void
    setWindingRule(int rule)
    このパスの屈曲規則を指定された値に設定します。
    abstract void
    指定されたAffineTransformを使用して、このパスの幾何学的図形を変換します。
    abstract void
    このPath2Dインスタンスの容量を現在のサイズに縮小します。

    クラスjava.lang.Objectで宣言されたメソッド

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    インタフェースjava.awt.Shapeで宣言されたメソッド

    getBounds2D, getPathIterator
  • フィールド詳細

  • メソッドの詳細

    • 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
      関連項目:
    • setWindingRule

      public final void setWindingRule(int rule)
      このパスの屈曲規則を指定された値に設定します。
      パラメータ:
      rule - 指定された屈曲規則を表す整数
      例外:
      IllegalArgumentException - ruleWIND_EVEN_ODDまたはWIND_NON_ZEROのどちらでもない場合
      導入されたバージョン:
      1.6
      関連項目:
    • 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の定義アウトライン上のポイントが、返されたboundsオブジェクトに含まれるとは見なされない場合もありますが、それらのポイントが元のshapeに含まれていない場合のみであることに注意してください。

      pointcontains(point)メソッドに従ってshapeの内側にある場合は、boundscontains(point)メソッドに従って、返されたRectangle境界オブジェクトの内側にある必要があります。 具体的には、次のようになります。

      shape.contains(x,y)にはbounds.contains(x,y)が必要

      pointshapeの内側にない場合は、引き続きboundsオブジェクトに含まれている可能性があります。

      bounds.contains(x,y)shape.contains(x,y)を示さない

      定義:
      getBounds、インタフェースShape
      戻り値:
      Shapeを完全に囲む整数型のRectangle
      導入されたバージョン:
      1.6
      関連項目:
    • 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の境界内にあるかどうかをテストします。
      定義:
      contains、インタフェースShape
      パラメータ:
      x - テストされる指定されたX座標
      y - テストされる指定されたY座標
      戻り値:
      指定された座標がShape境界の内側にある場合はtrue、それ以外の場合はfalse
      導入されたバージョン:
      1.6
    • contains

      public final boolean contains(Point2D p)
      指定されたPoint2Dが、内側の定義によって記述されたShapeの境界の内側にあるかどうかをテストします。
      定義:
      contains、インタフェースShape
      パラメータ:
      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を返すことができます。

      • 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
      関連項目:
    • contains

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

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

      定義:
      contains、インタフェースShape
      パラメータ:
      r - 指定されたRectangle2D
      戻り値:
      Shapeの内部にRectangle2Dが完全に含まれる場合はtrue、それ以外の場合、またはShapeRectangle2Dが含まれ、intersectsメソッドがtrueを返し、さらに負荷が大きすぎて包含の計算を実行できない場合はfalse
      導入されたバージョン:
      1.6
      関連項目:
    • 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が交差している可能性が高いが、
      • この共通部分を正確に判断する計算の負荷がかなり大きい。
      つまり、Shapesによっては、矩形領域がShapeと交差していない場合でもこのメソッドがtrueを返すことがあります。 Areaクラスは、ほとんどのShapeオブジェクトより正確な、幾何学的な共通部分の計算を実行するため、より的確な答えが必要な場合に使用できます。

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

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

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

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

      定義:
      intersects、インタフェースShape
      パラメータ:
      r - 指定されたRectangle2D
      戻り値:
      Shapeの内部と指定されたRectangle2Dの内部が交差しているか、またはどちらも交差している可能性が高いが、負荷が大きすぎて共通部分の計算を実行できない場合はtrue、それ以外の場合はfalse
      導入されたバージョン:
      1.6
      関連項目:
    • 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、または変換されていない座標が必要な場合はnull
      flatness - 曲線セグメントを近似するために使用されるライン・セグメントが、元の曲線上の任意の点から離れることができる最大の距離
      戻り値:
      Shapeの幾何学的図形の平坦化されたビューを独立してトラバースする新しいPathIterator
      導入されたバージョン:
      1.6
    • clone

      public abstract Object clone()
      このオブジェクトと同じクラスの新しいオブジェクトを作成します。
      オーバーライド:
      clone、クラスObject
      戻り値:
      このインスタンスの複製。
      例外:
      OutOfMemoryError - 十分なメモリーがない場合。
      導入されたバージョン:
      1.6
      関連項目:
    • trimToSize

      public abstract void trimToSize()
      このPath2Dインスタンスの容量を現在のサイズに縮小します。 アプリケーションは、この操作を使用してパスのストレージを最小限に抑えることができます。
      導入されたバージョン:
      10