WPF конвертирует 2d щелчок мышью в 3d space - PullRequest
1 голос
/ 13 ноября 2009

У меня есть несколько геометрических сеток в моем Viewport3D, у них есть границы (w: 1800, h: 500, d: 25).

Когда пользователь нажимает на середину сетки, я хочу, чтобы Point3D (900, 500, 25) ...

Как мне этого добиться?

Спасибо! Mark

1 Ответ

3 голосов
/ 13 ноября 2009

Просто используйте VisualTreeHelper.HitTest с обратным вызовом.

  • Если у вас есть Viewport3D с моделью, вы можете просто передать PointHitTestParameters с указанием местоположения мыши.

  • Если вам нужно работать непосредственно с Visual3D, передайте RayHitTestParameters, рассчитанное по параметрам вашей камеры и местоположению мыши.

В любом случае ваш обратный вызов будет вызываться с RayTestHitResult, а если вы попадете в меш, это будет RayMeshGeometry3DHitTestResult. Это включает в себя свойство Point3D, сообщающее вам о 3D-точке пространства, которая была поражена, а также о сетке и треугольнике, которые были поражены.

Подробнее см. 3D-тестирование .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...