Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Поворот вектора в пространстве при помощи мыши.


Автор: Elfet 19.6.2007, 22:55
Есть растояние на которое отодвинута мышка от центра экрана:
Код

float zDelta = screen1.Height / 2 - mousePoint.Y;
float yDelta = screen1.Width / 2 - mousePoint.X;

Есть 3 перпендикулярных вектора, которые задают камеру в пространстве: camera.N (то вектор который нужно поворачивать) camera.U и camera.V 
нужно N повернуть на "углы" zDelta и yDelta  относительно U и V. Подскажите пожалуйста как?  smile 
Вот мой вариант, но мне так кажется что он работает не во всех случаях: когда я пытаюсь развернуть ввектор в обратном направлении начинаются глюки:
Код

                    newN = camera.N * Math.Cos(zDelta) + camera.U * Math.Sin(zDelta);
                    camera.Reset();
                    newN = camera.N * Math.Cos(yDelta) + camera.V * Math.Sin(yDelta);

Заранее спасибо smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)