Название: Поворот матрицы Отправлено: 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 Теперь вопрос , это что разные фунции? чем они отличаются? И как правильно повернуть матрицу вокруг вектора на определенный угол Название: Re: Поворот матрицы Отправлено: Igors от Март 12, 2010, 13:27 - Ничего не слышал о классе QMatrix4x4 поэтому не могу судить что и как он делает
- "повернуть матрицу вокруг вектора на определенный угол" в действительности это означает: построить еще одну матрицу (которая никак не зависит от исходной а только от оси поворота и угла) и затем исходную помножить на нее. Это соответствует последовательным поворотам объекта в пространстве. Не путать это с локальным поворотом (вокруг одной из осей исходной матрицы). - Для начала неплохо разобраться как записаны оси в обоих случаях. Сделайте исходную identity матрицу (единички по диагонали) и поверните ее напр. на угол 30 градусов (cos = 0.866, sin = 0.5) вокруг оси y (0, 1, 0). Так Вы увидите что и как каждая ф-ция крутит. |