Russian Qt Forum
Ноябрь 24, 2024, 18:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Поворот матрицы  (Прочитано 3052 раз)
bloodcry
Гость
« : Март 12, 2010, 07:42 »

Помогите разобраться.
Пытаюсь поворачивать матрицы вокруг определенного вектора, на определенный угол.
Вектор V (0.11841,-0.4581,-0.88097), угол а = 4 градуса;
исходная матрица
-0.1015837, -0.25132,-0.96256,0
0.6961, -0.7092, 0.1171,0
-0.71072,-0.6587,0.24699,0
0,0,0,1
1. с помощь QMatrix4x4.rotate
-0.16599, -0.2257,-0.96,0
0.6822,-0.729,0.05885,0
-0.712,-0.64,0.27499,0
0,0,0,1
2. c помощью glRotate
-0.08154, -0.3154,-0.9451,0
0.695844, -0.69715, 0.17795,0
-0.71354,0.6438, 0.276,0
0,0,0,1
Теперь вопрос , это что разные фунции? чем они отличаются? И как правильно повернуть матрицу вокруг вектора на определенный угол
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Март 12, 2010, 13:27 »

- Ничего не слышал о классе QMatrix4x4 поэтому не могу судить что и как он делает

- "повернуть матрицу вокруг вектора на определенный угол" в действительности это означает: построить еще одну матрицу (которая никак не зависит от исходной а только от оси поворота и угла) и затем исходную помножить на нее. Это соответствует последовательным поворотам объекта в пространстве. Не путать это с локальным поворотом (вокруг одной из осей исходной матрицы).

- Для начала неплохо разобраться как записаны оси в обоих случаях. Сделайте исходную identity матрицу (единички по диагонали) и поверните ее напр. на угол 30 градусов (cos = 0.866, sin = 0.5) вокруг оси y (0, 1, 0). Так Вы увидите что и как каждая ф-ция крутит.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 22.