UWP非直线物体对撞探测器

时间:2018-11-22 15:26:43

标签: c# uwp uwp-xaml

我需要知道两个通用对象是否相交。 我尝试创建两个具有相同大小对象的Rect,并使用有效的Intersect方法,但是,此方法在诸如Ellipse之类的对象上并不准确。

有没有一种方法可以告诉我两个非矩形物体是否相交?

GeneralTransform t1 = this.object1.TransformToVisual(this);
GeneralTransform t2 = this.object2.TransformToVisual(this);

Rect r1 = t1.TransformBounds(new Rect() { X = 0, Y = 0, Width = this.object1.ActualWidth, Height = this.object1.ActualHeight });
Rect r2 = t2.TransformBounds(new Rect() { X = 0, Y = 0, Width = this.object2.ActualWidth, Height = this.object2.ActualHeight });

bool result = r1.IntersectsWith(r2);

1 个答案:

答案 0 :(得分:0)

您可以使用HitTestCore。请参见该方法的文档,您需要接受GeometryHitTestParameters的重载。

编辑:您将获得第二个对象的几何图形,并使用它调用“ HitTestCore”。