Delen via


Procedure: Een gecombineerde geometrie maken

In dit voorbeeld ziet u hoe u geometrieën combineert. Als u twee geometrieën wilt combineren, gebruikt u een CombinedGeometry object. Stel de eigenschappen Geometry1 en Geometry2 in met de twee geometrieën die gecombineerd moeten worden, en stel de eigenschap GeometryCombineMode in, die bepaalt hoe de geometrieën worden gecombineerd, op Union, Intersect, Exclude, of Xor.

Als u een samengestelde geometrie wilt maken op basis van twee of meer geometrieën, gebruikt u een GeometryGroup.

Voorbeeld

In het volgende voorbeeld wordt een CombinedGeometry gedefinieerd met een geometriecombinatiemodus van Exclude. Zowel Geometry1 als Geometry2 worden gedefinieerd als cirkels van dezelfde straal, maar met middelpunten die 50 uit elkaar zijn verplaatst.

<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>

resultaten van de combinatiemodus Uitsluiten
Gecombineerde geometrie uitsluiten

In de volgende markup wordt een CombinedGeometry gedefinieerd met een combinatiemodus van Intersect. Zowel Geometry1 als Geometry2 worden gedefinieerd als cirkels van dezelfde straal, maar met middelpunten verschoven met 50 eenheden.

<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>

resultaten van de snijpunt-combinatiemodus
Gecombineerde geometriedoorsnijding

In de volgende markup wordt een CombinedGeometry gedefinieerd met een combinatiemodus van Union. Zowel Geometry1 als Geometry2 worden gedefinieerd als cirkels met dezelfde straal, maar met middelpunten die 50 eenheden zijn verschoven.

<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>

resultaten van de combinatiemodus van de Unie
Gecombineerde geometrie-vereniging

In de volgende markeringen wordt een CombinedGeometry gedefinieerd met een combinatiemodus van Xor. Zowel Geometry1 als Geometry2 worden gedefinieerd als cirkels van dezelfde straal, maar met middelpunten die met 50 zijn verschoven.

<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>

resultaten van de Xor-combinatiemodus
Gecombineerde geometrie Xor