gpt4 book ai didi

c# - PathGeometry 的非 GUI 替代品?

转载 作者:太空狗 更新时间:2023-10-29 23:09:17 29 4
gpt4 key购买 nike

我有两个巨大的(>100000 项)PathGeometry 集合,我需要使用 PathGeometry.Combine 进行比较,如下所示:

List<PathGeometry> firstList;
List<PathGeometry> secondList;
[...]

foreach (PathGeometry pg1 in firstList)
foreach (PathGeometry pg2 in secondList)
{
PathGeometry intergeo = PathGeometry.Combine(pg1, pg2, GeometryCombineMode.Intersect, null);
if (intergeo.GetArea() > 0)
{
// do whatever with intergeo.GetArea()
}
}

令我惊讶的是 PathGeometry 是 GUI 的一部分并且确实使用了调度程序,这有时会导致问题,因为我的计算确实在一些后台线程中运行而没有使用 Parallel.ForEach() 的 GUI

所以我正在寻找未连接到 GUI 的 PathGeometry 的替代方案。
我的图形非常复杂,并在 PathGeometry.Figures 中添加了很多 PathFigures。

我正在从一些臃肿的政府 xml 文件中自己创建这些 PathGeometries,因此创建其他文件也没有问题。但是我需要一个函数来创建其中两个几何图形的交集(而不是将它们相互相加)以获得两个几何图形所覆盖的区域,例如此图中的红色区域:

enter image description here

最佳答案

System.Windows.Media 还包含一个类 StreamGeometry,它是 PathGeometry 的“轻量级替代品”。它不支持数据绑定(bind)、动画或修改,但由于它派生自 Geometry,因此它应该具有 Combine 方法。

参见 StreamGeometry @ MSDN

关于c# - PathGeometry 的非 GUI 替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12579294/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com