Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Система рисования. Печать _ Matrix rotate

Автор: bloodcry 12.3.2010, 7:41

Помогите разобраться.
Пытаюсь поворачивать матрицы вокруг определенного вектора, на определенный угол.
Вектор 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
Теперь вопрос , это что разные фунции? чем они отличаются? И как правильно повернуть матрицу вокруг вектора на определенный угол

Автор: molchanoviv 12.3.2010, 9:09

Цитата(bloodcry @ 12.3.2010, 7:41) *
это что разные фунции?

Естесственно.
Цитата(bloodcry @ 12.3.2010, 7:41) *
И как правильно повернуть матрицу вокруг вектора на определенный угол

Если используется ОГЛ то думаю лучше будет так:

glPushMatrix(); //Сохранили положение старой матрицы. Только в случае если нужно будет прежнее состояние матрицы.
glRotatef(4, 0.0f, 0.0f, 1.0f) //Тип и ось вращения выберешь сам.
glPopMatrix(); //В случае если надо вернуться к прежнему состоянию матрицы.


А с QMatrix я не работал.

Автор: bloodcry 12.3.2010, 9:19

то, что это разные функции и так понятно :rolleyes: . Разве они выполняют не одну и ту же функцию, поворот матрицы, я предполагаю что результаты также должны быть одинаковые

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)