我的Viewport3D中有几个几何网格,它们的边界为(w:1800,h:500,d:25)。
当用户点击网格中间时,我想要Point3D(900,500,25)......
我怎样才能做到这一点?
谢谢! 标记
答案 0 :(得分:3)
只需将VisualTreeHelper.HitTest
与回调一起使用。
如果您有Viewport3D
包含模型,则只需传入包含鼠标位置的PointHitTestParameters
。
如果您需要直接在Visual3D
上进行操作,请传入从相机参数和鼠标位置计算的RayHitTestParameters
。
在任何一种情况下,您的回调都会被RayTestHitResult
调用,如果您点击一个网格,它将是RayMeshGeometry3DHitTestResult
。这包括一个Point3D
属性,告诉您空间中被击中的3D点,以及被击中的网格和三角形。
有关详细信息,请参阅3D Hit testing。