0

我需要在 WPF 3D 视口中重置我的 3D 相机位置。我正在使用 3Dtools 的轨迹球装饰器。我发现我可以使用以下方法清除相机的转换:

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;

视口有一个轨迹球装饰器,它允许用户围绕场景旋转相机。但是我想要一个功能将相机重置回原来的位置,但是一旦创建,我就找不到直接设置它的位置的方法。

4

1 回答 1

0

首先你应该删除相机上使用的动画,你可以通过方法 camera.ApplyAnimationClock(ProjectCamera.PositionProperty, null) 然后将原始值分配给相机

于 2012-02-22T03:33:39.850 回答