WPF将2d鼠标单击转换为3d空间

时间:2009-11-13 05:18:05

标签: wpf 3d

我的Viewport3D中有几个几何网格,它们的边界为(w:1800,h:500,d:25)。

当用户点击网格中间时,我想要Point3D(900,500,25)......

我怎样才能做到这一点?

谢谢! 标记

1 个答案:

答案 0 :(得分:3)

只需将VisualTreeHelper.HitTest与回调一起使用。

  • 如果您有Viewport3D包含模型,则只需传入包含鼠标位置的PointHitTestParameters

  • 如果您需要直接在Visual3D上进行操作,请传入从相机参数和鼠标位置计算的RayHitTestParameters

在任何一种情况下,您的回调都会被RayTestHitResult调用,如果您点击一个网格,它将是RayMeshGeometry3DHitTestResult。这包括一个Point3D属性,告诉您空间中被击中的3D点,以及被击中的网格和三角形。

有关详细信息,请参阅3D Hit testing