У меня есть два набора геометрических данных, каждый из которых содержит десятки тысяч 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% случаев комбинации вообще не пересекаются. Профилирование говорит мне, что это самая «дорогая» часть этого расчета.
Есть ли способ ускорить или ускорить обнаружение столкновений между двумя PathGeometries?