WPF将3D球体旋转到任意位置

时间:2009-11-26 06:45:34

标签: wpf rotation

如果我有一个由用户鼠标旋转的球体,我怎么能(在任何时候,通过按钮说)在相机上应用一些旋转变换,以便在特定的位置上球体面向用户?

目前我正在实施一种轨迹球方法,当用户点击并拖动时可以移动相机,我希望能够“平移”到球体上的特定位置,但我不知道如何计算根据摄像机当前位置进行3D旋转变换。

非常感谢任何帮助。

谢谢, 标记

1 个答案:

答案 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);
相关问题