| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 |
Модератор: Сообщение скрыто. |