我有两个要匹配的几何数据集,都包含数万个 PathGeometries。确切地说,我需要找到从一组重叠到另一组的区域,所以我得到了一个循环
foreach (var p1 in firstGeometries)
{
foreach (var p2 in secondGeometries)
{
PathGeometry sharedArea = PathGeometry.Combine(p1, p2, GeometryCombineMode.Intersect, null);
if (sharedArea.GetArea() > 0) // only true 0.01% of the time
{
[...]
}
}
}
现在,由于我的数据的性质,99.99% 的组合根本不相交。分析告诉我这是这个计算中最“昂贵”的部分。
有什么方法可以加快或获得两个 PathGeometry 之间的更快碰撞检测?