2012-02-17 4 views
0

Мне нужно сбросить положение 3D-камеры в окне просмотра WPF 3D. Я использую декоратор трекбола от 3Dtools. Взлом вокруг я обнаружил, что я могу очистить преобразование камеры с помощью:Позиция 3D-камеры WPF

Transform3DGroup group = camera.Transform as Transform3DGroup; 
group.Children.Clear(); 

Однако это нарушает трекбол, как я угадал камеру больше не имеет преобразование матрицы. Есть ли способ вернуть камеру туда, где я ее создал, то есть: могу ли я вручную изменить положение камеры и работать трекбол?

Edit:

создать перспективную камеру и добавить ее в 3D-окне, используя следующий код:

perspectiveCamera.Position = new Point3D(sceneSize.X * 4 , 
             sceneSize.Y , 
             sceneSize.Z * (-4)); 

CameraLookAt = new Point3D(0, (sceneSize.Y/2), 0); 

perspectiveCamera.LookDirection = new Vector3D (
            CameraLookAt.X - perspectiveCamera.Position.X, 
            CameraLookAt.Y - perspectiveCamera.Position.Y, 
            CameraLookAt.Z - perspectiveCamera.Position.Z); 
perspectiveCamera.FieldOfView = 24; 

Viewport_3D.Camera = perspectiveCamera; 

Окно просмотра имеет трекбол декоратора, который позволяет пользователю вращать камеру вокруг сцена. Однако я хочу, чтобы функция сбросила камеру обратно в исходное положение, но я не могу найти способ напрямую установить ее позицию после ее создания.

+0

Немного больше объяснений, пожалуйста, – Bug

ответ

0

Во-первых, вы должны удалить анимации использовать камеру, вы можете сделать это с помощью метода camera.ApplyAnimationClock (ProjectCamera.PositionProperty, нуль) присваивается исходное значение для камеры