Combine multiple Ellipses

2020-03-08 06:35发布

I need a way to combine multiple EllipseGeometry to make a union between them, but CombineGeometry class only can combine 2 Geometries. The ideal way is to have a class similar CombineGeometry that accepts more than Geometry1 and Geometry2 shapes.
Anyone knows an object that makes such a behaviour?

1条回答
Ridiculous、
2楼-- · 2020-03-08 06:36

EllipseGeometry is a Geometry too so you can combine like this:

  <CombinedGeometry GeometryCombineMode="Union">
       <CombinedGeometry.Geometry1>
            <EllipseGeometry RadiusX="70" RadiusY="30" Center="100,150"  />
       </CombinedGeometry.Geometry1>
       <CombinedGeometry.Geometry2>
            <EllipseGeometry RadiusX="70" RadiusY="30" Center="200,150" />
       </CombinedGeometry.Geometry2>
  </CombinedGeometry>

EDIT To combine three or more EllipseGeometries you could use this mechanism

<CombinedGeometry   GeometryCombineMode="Union">
    <CombinedGeometry.Geometry1>
        <CombinedGeometry GeometryCombineMode="Union">
              <CombinedGeometry.Geometry1>
                    <EllipseGeometry RadiusX="70" RadiusY="30" Center="100,150"  />
              </CombinedGeometry.Geometry1>
              <CombinedGeometry.Geometry2>
                    <EllipseGeometry RadiusX="70" RadiusY="30" Center="200,150" />
              </CombinedGeometry.Geometry2>
        </CombinedGeometry>
    </CombinedGeometry.Geometry1>
    <CombinedGeometry.Geometry2>
           <EllipseGeometry RadiusX="70" RadiusY="30" Center="100,150"  />
    </CombinedGeometry.Geometry2>
</CombinedGeometry>

You can create a new class that is derived from Geometry and have a Geometry[] in it and implement methods using above mechanism.

查看更多
登录 后发表回答