WPF Поворот 3D сферы в произвольную позицию - PullRequest
0 голосов
/ 26 ноября 2009

Если у меня есть сфера, которая вращается мышью пользователя, как я могу (в любое время, скажем, с помощью кнопки) применить некоторое преобразование вращения на камере, чтобы конкретное пятно на Сфера стоит перед Пользователем?

В настоящее время я реализую подход с помощью трекбола, который перемещает камеру, когда пользователь щелкает и перетаскивает ее, и я хотел бы иметь возможность «панорамировать» определенное место на Сфере, но я не знаю, как рассчитать Требуется преобразование трехмерного вращения в зависимости от текущего положения камеры.

Любая помощь здесь будет принята с благодарностью.

Спасибо, Mark

1 Ответ

1 голос
/ 12 января 2010

Я думаю, вам нужно что-то вроде этого (довольно просто, вы просто должны знать, где вам нужна ваша камера и где искать, об остальном позаботится 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...