ModelVisual3D与另一个ModelVisual3D对象交叉,wpf

时间:2013-05-23 11:30:47

标签: wpf

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

我找到了与Geometry相关的内容,但我无法将此ModelVisual3D对象转换为Geometry ...请帮助...谢谢

1 个答案:

答案 0 :(得分: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);

如果你需要更精细的碰撞检测,你最好使用一些更加软化的工具,例如Bullet {@的C#包装器BulletSharp。看看这个previous post