合并多个椭圆

发布于 2024-08-08 05:40:50 字数 166 浏览 6 评论 0原文

我需要一种方法来组合多个 EllipseGeometry 以在它们之间建立一个并集,但是 JointGeometry 类只能组合 2 个几何图形。 理想的方法是拥有一个类似CombineGeometry 的类,它接受多个Geometry1 和Geometry2 形状。
有人知道有一个物体可以做出这样的行为吗?

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

魂ガ小子 2024-08-15 05:40:50

EllipseGeometry 也是一个几何图形,因此您可以像这样组合:

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

编辑
要组合三个或更多 EllipseGeometries,您可以使用此机制

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

您可以创建一个派生自 Geometry 的新类,并在其中包含 Geometry[] 并使用上述机制实现方法。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文