方法: 結合したジオメトリを作成する

この例は、ジオメトリを結合する方法を示しています。 2 つのジオメトリを結合するには、CombinedGeometry オブジェクトを使用します。 結合する 2 つのジオメトリでその Geometry1 プロパティと Geometry2 プロパティを設定します。また、ジオメトリの結合方法を決定する GeometryCombineMode プロパティを UnionIntersectExclude、または Xor に設定します。

2 つ以上のジオメトリから複合ジオメトリを作成するには、GeometryGroup を使用します。

次の例では、CombinedGeometryExclude のジオメトリ結合モードで定義されています。 Geometry1Geometry2 は両方とも同じ半径の円として定義されますが、中心は 50 オフセットされています。

<Path Stroke="Black" StrokeThickness="1" Fill="#CCCCFF">
  <Path.Data>
    
    <!-- Combines two geometries using the exclude combine mode. -->
    <CombinedGeometry GeometryCombineMode="Exclude">
      <CombinedGeometry.Geometry1>
        <EllipseGeometry RadiusX="50" RadiusY="50" Center="75,75" />
      </CombinedGeometry.Geometry1>
      <CombinedGeometry.Geometry2>
        <EllipseGeometry RadiusX="50" RadiusY="50" Center="125,75" />
      </CombinedGeometry.Geometry2>
    </CombinedGeometry>
  </Path.Data>
</Path>

Results of the Exclude combine mode
結合したジオメトリの除外

次のマークアップでは、CombinedGeometryIntersect の結合モードを指定して定義されています。 Geometry1Geometry2 は両方とも同じ半径の円として定義されますが、中心は 50 オフセットされています。

<Path Stroke="Black" StrokeThickness="1" Fill="#CCCCFF">
  <Path.Data>
    
    <!-- Combines two geometries using the intersect combine mode. -->
    <CombinedGeometry GeometryCombineMode="Intersect">
      <CombinedGeometry.Geometry1>
        <EllipseGeometry RadiusX="50" RadiusY="50" Center="75,75" />
      </CombinedGeometry.Geometry1>
      <CombinedGeometry.Geometry2>
        <EllipseGeometry RadiusX="50" RadiusY="50" Center="125,75" />
      </CombinedGeometry.Geometry2>
    </CombinedGeometry>
  </Path.Data>
</Path>

Results of the Intersect combine mode
結合したジオメトリの交差

次のマークアップでは、CombinedGeometryUnion の結合モードで定義されています。 Geometry1Geometry2 は両方とも同じ半径の円として定義されますが、中心は 50 オフセットされています。

<Path Stroke="Black" StrokeThickness="1" Fill="#CCCCFF">
  <Path.Data>
    
    <!-- Combines two geometries using the union combine mode. -->
    <CombinedGeometry GeometryCombineMode="Union">
      <CombinedGeometry.Geometry1>
        <EllipseGeometry RadiusX="50" RadiusY="50" Center="75,75" />
      </CombinedGeometry.Geometry1>
      <CombinedGeometry.Geometry2>
        <EllipseGeometry RadiusX="50" RadiusY="50" Center="125,75" />
      </CombinedGeometry.Geometry2>
    </CombinedGeometry>
  </Path.Data>
</Path>

Results of the Union combine mode
結合したジオメトリの和集合

次のマークアップでは、CombinedGeometryXor の結合モードで定義されています。 Geometry1Geometry2 は両方とも同じ半径の円として定義されますが、中心は 50 オフセットされています。

<Path Stroke="Black" StrokeThickness="1" Fill="#CCCCFF">
  <Path.Data>
    
    <!-- Combines two geometries using the XOR combine mode. -->
    <CombinedGeometry GeometryCombineMode="Xor">
      <CombinedGeometry.Geometry1>
        <EllipseGeometry RadiusX="50" RadiusY="50" Center="75,75" />
      </CombinedGeometry.Geometry1>
      <CombinedGeometry.Geometry2>
        <EllipseGeometry RadiusX="50" RadiusY="50" Center="125,75" />
      </CombinedGeometry.Geometry2>
    </CombinedGeometry>
  </Path.Data>
</Path>

Results of the Xor combine mode
結合したジオメトリの Xor