我需要在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;
视口有一个轨迹球装饰器,允许用户围绕场景旋转相机。但是我想要一个功能将相机重置回原来的位置,但是一旦创建,我找不到直接设置它的位置的方法。
答案 0 :(得分:0)
首先你应该删除相机上使用的动画,你可以通过这个方法来完成 camera.ApplyAnimationClock(ProjectCamera.PositionProperty,null)然后将原始值分配给相机