WPF конвертирует 2d щелчок мышью в 3d space

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

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

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

Спасибо! отметка

Ответы на вопрос(1)

Решение Вопроса

VisualTreeHelper.HitTest с обратным вызовом.

Если у тебя естьViewport3D содержащий модель, вы можете просто передать вPointHitTestParameters содержащий местоположение мыши.

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

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

УвидетьТестирование 3D Хита Больше подробностей.

Ваш ответ на вопрос