2

我在 wpf 中有两个 ModelVisual3D 对象。是否有任何代码可以找到这两个 ModeVisual3D 对象的交集?

我发现了一些与几何相关的东西,但我无法将此 ModelVisual3D 对象转换为几何...请帮助...谢谢

4

1 回答 1

0

WPF 仅支持 Rect3D 对象之间的边界框相交方法,即实心矩形。ModelVisual3D 对象通常用于渲染 Model3D 对象,这些对象具有 Bounds 属性。您可以使用它来检查交叉点:

        ModelVisual3D modelVisual = new ModelVisual3D();
        // set your modelVisual
        Model3D geomModel = (Model3D)modelVisual.Content;
        Rect3D bb = geomModel.Bounds;

        Rect3D rect = new Rect3D();
        // set your rect

        bool isIntersecting = rect.IntersectsWith(bb);

如果您需要更精细的碰撞检测,最好使用一些更复杂的工具,例如BulletSharp,它是 Bullet Physics 的 C# 包装器。看看这个以前的帖子

于 2015-10-28T12:57:52.750 回答