Вращение кватерниона по оси x 45 градусов - PullRequest
2 голосов
/ 06 января 2010

Вечер всех,

Я использую glMultMatrixf в OpenGL, чтобы вращать мою сцену с помощью матрицы:

float matrix[16] = {    1.0, 0.0, 0.0, 0.0, 
                            0.0, 1.0, 0.0, 0.0,
                            0.0, 0.0, 1.0, 0.0, 
                            0.0, 0.0, 0.0, 1.0 };

Я следовал этому руководству ( ссылка ), но это немного за то, что мне нужно.

Как я мог просто повернуть ось х на 45 градусов?

Приветствия

1 Ответ

1 голос
/ 06 января 2010

Умножение матрицы преобразования на эту матрицу вращения должно помочь:

float rot45X[16] = {   1.0,       0.0,         0.0, 0.0, 
                        0.0, cos(PI/4), -sin(PI/4), 0.0,
                        0.0, sin(PI/4),  cos(PI/4), 0.0, 
                        0.0,       0.0,        0.0, 1.0 };

Редактировать: Вы также можете использовать функцию полезности

glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);

где [x, y, z] указывают ось вращения (да, он выполняет вращение вокруг произвольного вектора).

В вашем случае вам нужно было бы позвонить так:

glRotatef(45, 1, 0, 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...