繁体   English   中英

WPF 3D相机位置

[英]WPF 3D camera position

我需要在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;

视口具有跟踪球装饰器,该装饰器允许用户围绕场景旋转相机。 但是我希望有一个功能可以将相机重设回其原始位置,但是我找不到找到一种方法来直接设置它的位置。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM