我在wpf中有两个ModelVisual3D对象。是否有任何代码可以找到这两个ModeVisual3D对象的交集?
我找到了与Geometry相关的内容,但我无法将此ModelVisual3D对象转换为Geometry ...请帮助...谢谢
答案 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。