![]() |
|
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]()
|
|
| Lomion |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 10.1.2010 Репутация: нет Всего: нет |
Всем доброго времени суток!
Передо мной встала задача следующего содержания. Есть 3D-объект, который рисуем с помощью библиотек OpenGL. Этот объект должен вращаться вокруг осей X,Y,Z исходя из движения мышкой. Движение фиксируется двумя событиями при MouseButtonDown мы записываем координаты начального положения при MouseButtonUp - конечное положение курсора. И тут я застопорился перед казалось простым делом, но понять его не могу никак. Я имею две точки в двумерной системе координат, я имею представление ка вычислить вращение для осей X и Y, но вот как вычислять вращение по оси Z - никак не пойму. Как я понимаю мы исходя из координат двух точек вычисляем углы для осей X и Y. Но вот по Z я не понимаю вычисление угла. Если кто-то может приведите примеры или указания на интуитивно понятные алгоритмы для такого вращения. Заранее благодарен! |
|||
|
||||
| gorby |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 27.3.2008 Где: Киев Репутация: нет Всего: нет |
Нужно сделать универсальный алгоритм вращения.
Есть ось вращения X/Y/Z. Пользователь должен указать ось вращения. Есть перемещение мыши - Прямая. Эту прямую можно разложить на 2 ортогональных вектора. Один параллелен оси вращения, другой перпендикулярен оси вращения. Перепендикулярный вектор определяет угол поворота (вперед-назад). |
|||
|
||||
| JanryMayers |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 11.6.2009 Где: Украина, г. Киев Репутация: нет Всего: нет |
||||
|
||||
| Kassel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.8.2012 Репутация: нет Всего: нет |
Модератор: Сообщение скрыто. |
|||
|
||||
![]()
|
| Вы можете найти полезным что... | |
|
|
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |