モジュール javafx.graphics
パッケージ javafx.scene.shape

クラスShape

  • すべての実装されたインタフェース:
    Styleable, EventTarget
    直系の既知のサブクラス:
    Arc, Circle, CubicCurve, Ellipse, Line, Path, Polygon, Polyline, QuadCurve, Rectangle, SVGPath, Text


    public abstract class Shape
    extends Node
    Shapeクラスは、なんらかの形式の幾何学的な形状を表すオブジェクトの共通プロパティの定義を提供します。 次のようなプロパティがあります。
    • 図形の塗りつぶし可能な内部に適用されるPaint (setFillを参照)。
    • 図形の輪郭のストロークに適用されるPaint (setStrokeを参照)。
    • 次を含む、ストロークの装飾プロパティ。
      • ボーダー・ストロークの幅。
      • ボーダーが、図形の外部余白として描画されるか、ボーダーの内部に沿った内側のエッジとして描画されるか、ボーダーに沿って内側と外側に均等にまたがって続く幅広のパスとして描画されるか(StrokeTypeを参照)。
      • パス・セグメント間の結合および閉じていないパスの終端の装飾スタイル。
      • 破線の属性。

    アプリケーションは、Shapeクラスを直接拡張するべきではありません。 そうすると、UnsupportedOperationExceptionがスローされることがあります。

    座標系との相互作用

    一般的に、ノードには整数平行移動のみが適用される傾向があり、また、ほとんどの場合は、整数座標を使用して定義されます。 この一般的な場合では、直線のエッジを持つ図形の塗りつぶしは、境界が鮮明であることが多く、これは、塗りつぶしが、整数デバイス座標で生じるピクセル間の隙間と揃うためで、そのため自然に全体のピクセルがカバーされることになります。

    一方、これらの同じ図形にストロークを適用すると、多くの場合、輪郭が不鮮明になります。これは、デフォルトのストローク属性では、デフォルトのストローク幅が1.0座標(多くの場合正確に1デバイス・ピクセルにマップされる)に指定され、かつ、ストロークが図形のボーダーをまたぎ、ボーダーの両側に半分ずつ分割されるように指定されるためです。 多くの一般的な図形のボーダーは整数座標上に配置される傾向があり、これらの整数座標は、通常、正確に整数のデバイス位置にマップされるため、ピクセル行や列が、図形のボーダーのいずれかの側で、ボーダーの100%ではなく50%をカバーする結果となります。 したがって、一般的に塗りつぶしは鮮明になりますが、ストロークは多くの場合不鮮明になります。

    このように輪郭が不鮮明になることを回避する一般的な解決策は2つあり、1つはより多くのピクセルを完全にカバーする幅広のストロークを使用すること(スケール変換が有効でない場合、通常は幅2.0で実現可能)、もう1つはStrokeType.INSIDEまたはStrokeType.OUTSIDEのストローク・スタイルを指定することによって、デフォルトの1単位ストロークが、図形のボーダーのすぐ内側または外側の、いずれかの行または列のピクセル全体に偏るようにすることです。

    導入されたバージョン:
    JavaFX 2.0
    • プロパティの詳細

      • strokeType

        public final ObjectProperty<StrokeType> strokeTypeProperty
        strokeWidthが図形の境界に適用される方向(内側、中央、外側)を定義します。

        この図は、ストロークなしの図形と、太いストロークが、内側、中央および外側に適用された図形を示しています。

        StrokeTypeの仕組みを視覚的に例示

        デフォルト値:
        CENTERED
        関連項目:
        getStrokeType()setStrokeType(StrokeType)
      • strokeWidth

        public final DoubleProperty strokeWidthProperty
        四角いペンの線の幅を定義します。 値0.0を指定すると、ヘアラインのストロークになります。 0.0より小さい値は0.0として扱われます。
        デフォルト値:
        1.0
        関連項目:
        getStrokeWidth()setStrokeWidth(double)
      • strokeLineJoin

        public final ObjectProperty<StrokeLineJoin> strokeLineJoinProperty
        輪郭線セグメントの接合部の装飾を定義します。 値は、StrokeLineJoin.MITERStrokeLineJoin.BEVELおよびStrokeLineJoin.ROUNDのいずれかである必要があります。 この図は、この順序で値を使用した図形を示しています。

        3つの異なる値を使用したStrokeLineJoinの視覚的な図

        デフォルト値:
        MITER
        関連項目:
        getStrokeLineJoin()setStrokeLineJoin(StrokeLineJoin)
      • strokeLineCap

        public final ObjectProperty<StrokeLineCap> strokeLineCapProperty
        使用可能なエンド・キャップ・スタイルを定義する次の値のいずれかを使用するこのShapeのエンド・キャップ・スタイル: StrokeLineCap.BUTTStrokeLineCap.ROUNDおよびStrokeLineCap.SQUARE この図は、この順序で値を使用した線を示しています。

        3つの異なる値を使用したStrokeLineCapの視覚的な図

        デフォルト値:
        SQUARE
        関連項目:
        getStrokeLineCap()setStrokeLineCap(StrokeLineCap)
      • strokeMiterLimit

        public final DoubleProperty strokeMiterLimitProperty
        StrokeLineJoin.MITER線結合スタイルに対する制限を定義します。 1.0未満の値は1.0として扱われます。

        図は、その動作を示しています。 接合の長さ(A)は、接合部の最も内側の点から最も外側の点までの距離として計算され、ストロークの幅が単位として使用されます。 接合の長さが指定された接合制限値より大きい場合、接合は図形の端(B)で切り取られます。 この図の状況では、4.65未満の制限値に従い、Bで接合が切り取られることを意味します。

        StrokeMiterLimitの使用方法の視覚的な図

        デフォルト値:
        10.0
        関連項目:
        getStrokeMiterLimit()setStrokeMiterLimit(double)
      • strokeDashOffset

        public final DoubleProperty strokeDashOffsetProperty
        破線パターン内でのオフセットを表すユーザー空間で指定された距離を定義します。 つまり、破線フェーズは、ストロークの先頭に対応する破線パターン内の点を定義します。

        この図は、破線配列[25, 20, 5, 20]のストローク、および同じパターンでオフセットが45であるストロークを示し、ここでは、最初の破線セグメントと後続スペースの長さだけパターンがシフトされています。

        StrokeDashOffsetの使用方法の視覚的な図

        デフォルト値:
        0
        関連項目:
        getStrokeDashOffset()setStrokeDashOffset(double)
      • fill

        public final ObjectProperty<Paint> fillProperty
        Paintコンテキストの設定を使用してShapeの内部を塗りつぶすパラメータを定義します。 すべての図形のデフォルト値はColor.BLACKですが、Line、PolylineおよびPathは除きます。 これらの図形のデフォルト値はnullです。
        関連項目:
        getFill()setFill(Paint)
      • stroke

        public final ObjectProperty<Paint> strokeProperty
        指定されたPaintの設定を使用して、Shapeのアウトラインに描画されるストロークのパラメータを定義します。 すべての図形のデフォルト値はnullですが、Line、PolylineおよびPathは除きます。 これらの図形のデフォルト値はColor.BLACKです。
        関連項目:
        getStroke()setStroke(Paint)
      • smooth

        public final BooleanProperty smoothProperty
        このShapeにアンチエイリアシング・ヒントを使用するかどうかを定義します。 値がtrueの場合、レンダリング・ヒントが適用されます。
        デフォルト値:
        true
        関連項目:
        isSmooth()setSmooth(boolean)
    • コンストラクタの詳細

      • Shape

        public Shape​()
        Shapeの空のインスタンスを作成します。
    • メソッドの詳細

      • setStrokeType

        public final void setStrokeType​(StrokeType value)
        プロパティstrokeTypeの値を設定します。
        プロパティの説明:
        strokeWidthが図形の境界に適用される方向(内側、中央、外側)を定義します。

        この図は、ストロークなしの図形と、太いストロークが、内側、中央および外側に適用された図形を示しています。

        StrokeTypeの仕組みを視覚的に例示

        デフォルト値:
        CENTERED
      • getStrokeType

        public final StrokeType getStrokeType​()
        プロパティstrokeTypeの値を取得します。
        プロパティの説明:
        strokeWidthが図形の境界に適用される方向(内側、中央、外側)を定義します。

        この図は、ストロークなしの図形と、太いストロークが、内側、中央および外側に適用された図形を示しています。

        StrokeTypeの仕組みを視覚的に例示

        デフォルト値:
        CENTERED
      • strokeTypeProperty

        public final ObjectProperty<StrokeType> strokeTypeProperty​()
        strokeWidthが図形の境界に適用される方向(内側、中央、外側)を定義します。

        この図は、ストロークなしの図形と、太いストロークが、内側、中央および外側に適用された図形を示しています。

        StrokeTypeの仕組みを視覚的に例示

        デフォルト値:
        CENTERED
        関連項目:
        getStrokeType()setStrokeType(StrokeType)
      • setStrokeWidth

        public final void setStrokeWidth​(double value)
        プロパティstrokeWidthの値を設定します。
        プロパティの説明:
        四角いペンの線の幅を定義します。 値0.0を指定すると、ヘアラインのストロークになります。 0.0より小さい値は0.0として扱われます。
        デフォルト値:
        1.0
      • getStrokeWidth

        public final double getStrokeWidth​()
        プロパティstrokeWidthの値を取得します。
        プロパティの説明:
        四角いペンの線の幅を定義します。 値0.0を指定すると、ヘアラインのストロークになります。 0.0より小さい値は0.0として扱われます。
        デフォルト値:
        1.0
      • strokeWidthProperty

        public final DoubleProperty strokeWidthProperty​()
        四角いペンの線の幅を定義します。 値0.0を指定すると、ヘアラインのストロークになります。 0.0より小さい値は0.0として扱われます。
        デフォルト値:
        1.0
        関連項目:
        getStrokeWidth()setStrokeWidth(double)
      • setStrokeLineJoin

        public final void setStrokeLineJoin​(StrokeLineJoin value)
        プロパティstrokeLineJoinの値を設定します。
        プロパティの説明:
        輪郭線セグメントの接合部の装飾を定義します。 値は、StrokeLineJoin.MITERStrokeLineJoin.BEVELおよびStrokeLineJoin.ROUNDのいずれかである必要があります。 この図は、この順序で値を使用した図形を示しています。

        3つの異なる値を使用したStrokeLineJoinの視覚的な図

        デフォルト値:
        MITER
      • getStrokeLineJoin

        public final StrokeLineJoin getStrokeLineJoin​()
        プロパティstrokeLineJoinの値を取得します。
        プロパティの説明:
        輪郭線セグメントの接合部の装飾を定義します。 値は、StrokeLineJoin.MITERStrokeLineJoin.BEVELおよびStrokeLineJoin.ROUNDのいずれかである必要があります。 この図は、この順序で値を使用した図形を示しています。

        3つの異なる値を使用したStrokeLineJoinの視覚的な図

        デフォルト値:
        MITER
      • strokeLineJoinProperty

        public final ObjectProperty<StrokeLineJoin> strokeLineJoinProperty​()
        輪郭線セグメントの接合部の装飾を定義します。 値は、StrokeLineJoin.MITERStrokeLineJoin.BEVELおよびStrokeLineJoin.ROUNDのいずれかである必要があります。 この図は、この順序で値を使用した図形を示しています。

        3つの異なる値を使用したStrokeLineJoinの視覚的な図

        デフォルト値:
        MITER
        関連項目:
        getStrokeLineJoin()setStrokeLineJoin(StrokeLineJoin)
      • setStrokeLineCap

        public final void setStrokeLineCap​(StrokeLineCap value)
        プロパティstrokeLineCapの値を設定します。
        プロパティの説明:
        使用可能なエンド・キャップ・スタイルを定義する次の値のいずれかを使用するこのShapeのエンド・キャップ・スタイル: StrokeLineCap.BUTTStrokeLineCap.ROUNDおよびStrokeLineCap.SQUARE この図は、この順序で値を使用した線を示しています。

        3つの異なる値を使用したStrokeLineCapの視覚的な図

        デフォルト値:
        SQUARE
      • getStrokeLineCap

        public final StrokeLineCap getStrokeLineCap​()
        プロパティstrokeLineCapの値を取得します。
        プロパティの説明:
        使用可能なエンド・キャップ・スタイルを定義する次の値のいずれかを使用するこのShapeのエンド・キャップ・スタイル: StrokeLineCap.BUTTStrokeLineCap.ROUNDおよびStrokeLineCap.SQUARE この図は、この順序で値を使用した線を示しています。

        3つの異なる値を使用したStrokeLineCapの視覚的な図

        デフォルト値:
        SQUARE
      • strokeLineCapProperty

        public final ObjectProperty<StrokeLineCap> strokeLineCapProperty​()
        使用可能なエンド・キャップ・スタイルを定義する次の値のいずれかを使用するこのShapeのエンド・キャップ・スタイル: StrokeLineCap.BUTTStrokeLineCap.ROUNDおよびStrokeLineCap.SQUARE この図は、この順序で値を使用した線を示しています。

        3つの異なる値を使用したStrokeLineCapの視覚的な図

        デフォルト値:
        SQUARE
        関連項目:
        getStrokeLineCap()setStrokeLineCap(StrokeLineCap)
      • setStrokeMiterLimit

        public final void setStrokeMiterLimit​(double value)
        プロパティstrokeMiterLimitの値を設定します。
        プロパティの説明:
        StrokeLineJoin.MITER線結合スタイルに対する制限を定義します。 1.0未満の値は1.0として扱われます。

        図は、その動作を示しています。 接合の長さ(A)は、接合部の最も内側の点から最も外側の点までの距離として計算され、ストロークの幅が単位として使用されます。 接合の長さが指定された接合制限値より大きい場合、接合は図形の端(B)で切り取られます。 この図の状況では、4.65未満の制限値に従い、Bで接合が切り取られることを意味します。

        StrokeMiterLimitの使用方法の視覚的な図

        デフォルト値:
        10.0
      • getStrokeMiterLimit

        public final double getStrokeMiterLimit​()
        プロパティstrokeMiterLimitの値を取得します。
        プロパティの説明:
        StrokeLineJoin.MITER線結合スタイルに対する制限を定義します。 1.0未満の値は1.0として扱われます。

        図は、その動作を示しています。 接合の長さ(A)は、接合部の最も内側の点から最も外側の点までの距離として計算され、ストロークの幅が単位として使用されます。 接合の長さが指定された接合制限値より大きい場合、接合は図形の端(B)で切り取られます。 この図の状況では、4.65未満の制限値に従い、Bで接合が切り取られることを意味します。

        StrokeMiterLimitの使用方法の視覚的な図

        デフォルト値:
        10.0
      • strokeMiterLimitProperty

        public final DoubleProperty strokeMiterLimitProperty​()
        StrokeLineJoin.MITER線結合スタイルに対する制限を定義します。 1.0未満の値は1.0として扱われます。

        図は、その動作を示しています。 接合の長さ(A)は、接合部の最も内側の点から最も外側の点までの距離として計算され、ストロークの幅が単位として使用されます。 接合の長さが指定された接合制限値より大きい場合、接合は図形の端(B)で切り取られます。 この図の状況では、4.65未満の制限値に従い、Bで接合が切り取られることを意味します。

        StrokeMiterLimitの使用方法の視覚的な図

        デフォルト値:
        10.0
        関連項目:
        getStrokeMiterLimit()setStrokeMiterLimit(double)
      • setStrokeDashOffset

        public final void setStrokeDashOffset​(double value)
        プロパティstrokeDashOffsetの値を設定します。
        プロパティの説明:
        破線パターン内でのオフセットを表すユーザー空間で指定された距離を定義します。 つまり、破線フェーズは、ストロークの先頭に対応する破線パターン内の点を定義します。

        この図は、破線配列[25, 20, 5, 20]のストローク、および同じパターンでオフセットが45であるストロークを示し、ここでは、最初の破線セグメントと後続スペースの長さだけパターンがシフトされています。

        StrokeDashOffsetの使用方法の視覚的な図

        デフォルト値:
        0
      • getStrokeDashOffset

        public final double getStrokeDashOffset​()
        プロパティstrokeDashOffsetの値を取得します。
        プロパティの説明:
        破線パターン内でのオフセットを表すユーザー空間で指定された距離を定義します。 つまり、破線フェーズは、ストロークの先頭に対応する破線パターン内の点を定義します。

        この図は、破線配列[25, 20, 5, 20]のストローク、および同じパターンでオフセットが45であるストロークを示し、ここでは、最初の破線セグメントと後続スペースの長さだけパターンがシフトされています。

        StrokeDashOffsetの使用方法の視覚的な図

        デフォルト値:
        0
      • strokeDashOffsetProperty

        public final DoubleProperty strokeDashOffsetProperty​()
        破線パターン内でのオフセットを表すユーザー空間で指定された距離を定義します。 つまり、破線フェーズは、ストロークの先頭に対応する破線パターン内の点を定義します。

        この図は、破線配列[25, 20, 5, 20]のストローク、および同じパターンでオフセットが45であるストロークを示し、ここでは、最初の破線セグメントと後続スペースの長さだけパターンがシフトされています。

        StrokeDashOffsetの使用方法の視覚的な図

        デフォルト値:
        0
        関連項目:
        getStrokeDashOffset()setStrokeDashOffset(double)
      • getStrokeDashArray

        public final ObservableList<Double> getStrokeDashArray​()
        破線セグメントの長さを表す配列を定義します。 配列内のエントリが、破線の不透明セグメントと透明セグメントのユーザー空間での長さを交互に表します。 ストロークで描画されるShapeの輪郭に沿ってペンが移動するにつれて、ペンが移動するユーザー空間の距離が累積されます。 距離の値は、破線配列のインデックスに使用されます。 現在の累積距離が破線配列の偶数番目(0からカウント)の要素にマッピングされる場合、ペンは不透明になり、奇数番目の要素にマッピングされる場合は透明になります。

        空のstrokeDashArrayはスペースがない実線を示します。 奇数長のstrokeDashArrayは、示された奇数長配列を暗黙的に2回連続して繰り返すことによって構成された偶数長配列と同じように動作します([20, 5, 15]は、[20, 5, 15, 20, 5, 15]であるかのように動作します)。

        各破線セグメントは、現在のストローク線の終端処理で指定されている装飾で終端処理されます。

        この図は、ストローク破線配列[25, 20, 5, 20]の、3つの異なるストローク線終端処理StrokeLineCap.BUTTStrokeLineCap.SQUARE (デフォルト)およびStrokeLineCap.ROUNDの図形を示しています。

        ストローク・ライン・キャップに3つの異なる値を使用するStrokeDashArrayの使用方法の視覚的な図

        デフォルト値:
        戻り値:
        ダッシュ・セグメントの長さを表す配列
      • setFill

        public final void setFill​(Paint value)
        プロパティfillの値を設定します。
        プロパティの説明:
        Paintコンテキストの設定を使用してShapeの内部を塗りつぶすパラメータを定義します。 すべての図形のデフォルト値はColor.BLACKですが、Line、PolylineおよびPathは除きます。 これらの図形のデフォルト値はnullです。
      • getFill

        public final Paint getFill​()
        プロパティfillの値を取得します。
        プロパティの説明:
        Paintコンテキストの設定を使用してShapeの内部を塗りつぶすパラメータを定義します。 すべての図形のデフォルト値はColor.BLACKですが、Line、PolylineおよびPathは除きます。 これらの図形のデフォルト値はnullです。
      • fillProperty

        public final ObjectProperty<Paint> fillProperty​()
        Paintコンテキストの設定を使用してShapeの内部を塗りつぶすパラメータを定義します。 すべての図形のデフォルト値はColor.BLACKですが、Line、PolylineおよびPathは除きます。 これらの図形のデフォルト値はnullです。
        関連項目:
        getFill()setFill(Paint)
      • setStroke

        public final void setStroke​(Paint value)
        プロパティstrokeの値を設定します。
        プロパティの説明:
        指定されたPaintの設定を使用して、Shapeのアウトラインに描画されるストロークのパラメータを定義します。 すべての図形のデフォルト値はnullですが、Line、PolylineおよびPathは除きます。 これらの図形のデフォルト値はColor.BLACKです。
      • getStroke

        public final Paint getStroke​()
        プロパティstrokeの値を取得します。
        プロパティの説明:
        指定されたPaintの設定を使用して、Shapeのアウトラインに描画されるストロークのパラメータを定義します。 すべての図形のデフォルト値はnullですが、Line、PolylineおよびPathは除きます。 これらの図形のデフォルト値はColor.BLACKです。
      • strokeProperty

        public final ObjectProperty<Paint> strokeProperty​()
        指定されたPaintの設定を使用して、Shapeのアウトラインに描画されるストロークのパラメータを定義します。 すべての図形のデフォルト値はnullですが、Line、PolylineおよびPathは除きます。 これらの図形のデフォルト値はColor.BLACKです。
        関連項目:
        getStroke()setStroke(Paint)
      • setSmooth

        public final void setSmooth​(boolean value)
        プロパティsmoothの値を設定します。
        プロパティの説明:
        このShapeにアンチエイリアシング・ヒントを使用するかどうかを定義します。 値がtrueの場合、レンダリング・ヒントが適用されます。
        デフォルト値:
        true
      • isSmooth

        public final boolean isSmooth​()
        プロパティsmoothの値を取得します。
        プロパティの説明:
        このShapeにアンチエイリアシング・ヒントを使用するかどうかを定義します。 値がtrueの場合、レンダリング・ヒントが適用されます。
        デフォルト値:
        true
      • smoothProperty

        public final BooleanProperty smoothProperty​()
        このShapeにアンチエイリアシング・ヒントを使用するかどうかを定義します。 値がtrueの場合、レンダリング・ヒントが適用されます。
        デフォルト値:
        true
        関連項目:
        isSmooth()setSmooth(boolean)
      • getClassCssMetaData

        public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData​()
        戻り値:
        このクラスに関連付けられたCssMetaData。スーパークラスのCssMetaDataを含むことがあります。
        導入されたバージョン:
        JavaFX 8.0
      • getCssMetaData

        public List<CssMetaData<? extends Styleable,?>> getCssMetaData​()
        NodeのCssMetaDataがリフレクションなしでアクセス可能になるように、このメソッドはNode.getClassCssMetaData()に委任する必要があります。
        定義:
        getCssMetaData 、インタフェース: Styleable
        オーバーライド:
        getCssMetaData 、クラス: Node
        戻り値:
        このノードに関連付けられたCssMetaData。スーパークラスのCssMetaDataを含むことがあります。
        導入されたバージョン:
        JavaFX 8.0
      • union

        public static Shape union​(Shape shape1,
                                  Shape shape2)
        指定された入力図形の集合和として作成された新しいShapeを返します。

        演算は、入力図形が占める幾何学的領域を使用して行われます。 単一のShapeの場合、このような領域には塗りつぶしにより占められた領域(図形にnull以外の塗りつぶしがある場合)およびストロークにより占められた領域(図形にnull以外のストロークがある場合)が含まれます。 したがって、ストロークがnullで塗りつぶしがnullの図形の場合、この領域は空です。 演算によって考慮される入力図形の領域は、塗りつぶしまたはストロークに使用されるペイントのタイプおよび構成には依存しません。 最終的な演算の前に、入力図形の領域はそれぞれの最上位親ノードの親座標空間に変換されます。

        結果の図形には、入力図形に含まれるすべての領域が含まれます。

        
                 shape1       +       shape2       =       result
           +----------------+   +----------------+   +----------------+
           |################|   |################|   |################|
           |##############  |   |  ##############|   |################|
           |############    |   |    ############|   |################|
           |##########      |   |      ##########|   |################|
           |########        |   |        ########|   |################|
           |######          |   |          ######|   |######    ######|
           |####            |   |            ####|   |####        ####|
           |##              |   |              ##|   |##            ##|
           +----------------+   +----------------+   +----------------+
        
        
        パラメータ:
        shape1 - 最初の図形
        shape2 - 2番目の図形
        戻り値:
        作成されたShape
      • subtract

        public static Shape subtract​(Shape shape1,
                                     Shape shape2)
        最初の形状から指定された2番目の図形を引いて作成された新しいShapeを返します。

        演算は、入力図形が占める幾何学的領域を使用して行われます。 単一のShapeの場合、このような領域には塗りつぶしにより占められた領域(図形にnull以外の塗りつぶしがある場合)およびストロークにより占められた領域(図形にnull以外のストロークがある場合)が含まれます。 したがって、ストロークがnullで塗りつぶしがnullの図形の場合、この領域は空です。 演算によって考慮される入力図形の領域は、塗りつぶしまたはストロークに使用されるペイントのタイプおよび構成には依存しません。 最終的な演算の前に、入力図形の領域はそれぞれの最上位親ノードの親座標空間に変換されます。

        結果の図形には、最初の図形に含まれ、2番目の図形には含まれない領域のみが含まれます。

        
                 shape1       -       shape2       =       result
           +----------------+   +----------------+   +----------------+
           |################|   |################|   |                |
           |##############  |   |  ##############|   |##              |
           |############    |   |    ############|   |####            |
           |##########      |   |      ##########|   |######          |
           |########        |   |        ########|   |########        |
           |######          |   |          ######|   |######          |
           |####            |   |            ####|   |####            |
           |##              |   |              ##|   |##              |
           +----------------+   +----------------+   +----------------+
        
        
        パラメータ:
        shape1 - 最初の図形
        shape2 - 2番目の図形
        戻り値:
        作成されたShape
      • intersect

        public static Shape intersect​(Shape shape1,
                                      Shape shape2)
        指定された入力図形の共通部分として作成された新しいShapeを返します。

        演算は、入力図形が占める幾何学的領域を使用して行われます。 単一のShapeの場合、このような領域には塗りつぶしにより占められた領域(図形にnull以外の塗りつぶしがある場合)およびストロークにより占められた領域(図形にnull以外のストロークがある場合)が含まれます。 したがって、ストロークがnullで塗りつぶしがnullの図形の場合、この領域は空です。 演算によって考慮される入力図形の領域は、塗りつぶしまたはストロークに使用されるペイントのタイプおよび構成には依存しません。 最終的な演算の前に、入力図形の領域はそれぞれの最上位親ノードの親座標空間に変換されます。

        結果の図形には、両方の入力図形に含まれる領域のみが含まれます。

        
                 shape1       +       shape2       =       result
           +----------------+   +----------------+   +----------------+
           |################|   |################|   |################|
           |##############  |   |  ##############|   |  ############  |
           |############    |   |    ############|   |    ########    |
           |##########      |   |      ##########|   |      ####      |
           |########        |   |        ########|   |                |
           |######          |   |          ######|   |                |
           |####            |   |            ####|   |                |
           |##              |   |              ##|   |                |
           +----------------+   +----------------+   +----------------+
        
        
        パラメータ:
        shape1 - 最初の図形
        shape2 - 2番目の図形
        戻り値:
        作成されたShape