Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > [OpenGL] Вращение 3D объекта мышкой


Автор: Lomion 23.1.2010, 07:58
Всем доброго времени суток!
Передо мной встала задача следующего содержания.
Есть 3D-объект, который рисуем с помощью библиотек OpenGL. Этот объект должен вращаться вокруг осей  X,Y,Z исходя из движения мышкой. Движение фиксируется двумя событиями при MouseButtonDown мы записываем координаты начального положения при MouseButtonUp - конечное положение курсора. И тут я застопорился перед казалось простым делом, но понять его не могу никак. Я имею две точки в двумерной системе координат, я имею представление ка вычислить вращение для осей X и Y, но вот как вычислять вращение по оси Z - никак не пойму. 
Как я понимаю мы исходя из координат двух точек вычисляем углы для осей X и Y. Но вот по Z я не понимаю вычисление угла. Если кто-то может приведите примеры или указания на интуитивно понятные алгоритмы для такого вращения. Заранее благодарен!

Автор: gorby 2.2.2010, 15:36
Нужно сделать универсальный алгоритм вращения.

Есть ось вращения X/Y/Z.
Пользователь должен указать ось вращения.

Есть перемещение  мыши - Прямая.  
Эту прямую можно разложить на 2 ортогональных вектора. Один параллелен оси вращения, другой перпендикулярен оси вращения.

Перепендикулярный вектор определяет угол поворота (вперед-назад).

Автор: JanryMayers 31.3.2010, 04:06
Вот http://pmg.org.ru/nehe/, урок номер 48.

Автор: Kassel 9.8.2012, 14:06
Модератор: Сообщение скрыто.

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