Поделиться через


Как создать объединенную геометрию

В этом примере показано, как объединить геометрии. Чтобы объединить две геометрии, используйте CombinedGeometry объект. Задайте его свойства Geometry1 и Geometry2 двумя геометриями для объединения, а также задайте свойство GeometryCombineMode, которое определяет, как геометрии будут объединяться, на Union, Intersect, Exclude или Xor.

Чтобы создать составную геометрию из двух или нескольких геометрий, используйте объект GeometryGroup.

Пример

В следующем примере CombinedGeometry определяется режим Excludeобъединения геометрии. Оба Geometry1 и Geometry2 определяются как круги одного радиуса, но с центрами смещения на 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>

Результаты режима исключения при объединении
Исключение в объединенной геометрии

В следующей разметке CombinedGeometry определяется с режимом комбинирования Intersect. Оба Geometry1 и Geometry2 определяются как круги одного радиуса, но с центрами смещения на 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>

Результаты режима объединения intersect
Объединенный интерсект геометрии

В следующей разметке CombinedGeometry определяется с режимом комбинирования Union. Оба Geometry1 и Geometry2 определяются как круги одного радиуса, но с центрами смещения на 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>

Результаты режима объединения
Объединенный союз геометрии

В следующей разметке CombinedGeometry определяется с режимом комбинирования Xor. Оба Geometry1 и Geometry2 определяются как круги одного радиуса, но с центрами смещения на 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>

Результаты режима объединения Xor
Комбинированная геометрия Xor