如果我有一个由用户鼠标旋转的球体,我怎么能(在任何时候,通过按钮说)在相机上应用一些旋转变换,以便在特定的位置上球体面向用户?
目前我正在实施一种轨迹球方法,当用户点击并拖动时可以移动相机,我希望能够“平移”到球体上的特定位置,但我不知道如何计算根据摄像机当前位置进行3D旋转变换。
非常感谢任何帮助。
谢谢, 标记
答案 0 :(得分:1)
我认为你需要这样的东西(这很简单,你只需要知道你的相机在哪里以及在哪里看,其余的将由WPF处理:-)):
Vector3DAnimation lookAnimation = new Vector3DAnimation(
currentLookDirection, nextLookDirection,
TimeSpan.FromMilliseconds(1000));
Point3DAnimation positionAnimation =
new Point3DAnimation(currentPosition, nextPosition,
TimeSpan.FromMilliseconds(1000));
mainViewport.Camera.BeginAnimation(
PerspectiveCamera.LookDirectionProperty, lookAnimation);
mainViewport.Camera.BeginAnimation(
PerspectiveCamera.PositionProperty, positionAnimation);