2012-02-17 140 views
0

我需要在WPF 3D視口中重置我的3D攝像頭位置。我正在使用3Dtools中的軌跡球裝飾器。黑客左右,我發現我可以使用清除相機的轉換:WPF 3D攝像頭位置

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

然而,這打破了軌跡球作爲我猜相機不再具有變換矩陣。有沒有辦法讓相機返回到我創建的位置,即:我可以手動重新定位相機並讓軌跡球仍然工作?

編輯:

創建的立體攝像機和使用下面的代碼將它添加到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 2012-02-17 21:02:36

回答

0

首先,你應該刪除動畫相機上使用,你可以做到這一點通過方法 camera.ApplyAnimationClock(ProjectCamera.PositionProperty,空),那麼原始值分配給相機