Введение в программирование трехмерных игр с DX9

       

Вращение относительно произвольной оси, определенной вектором A



Рисунок 12.3. Вращение относительно произвольной оси, определенной вектором A

Предположим, мы хотим выполнить поворот на π/2 радиан вокруг оси, заданной вектором (0.707,0.707, 0). Для этого надо написать:

D3DXMATRIX R; D3DXVECTOR3 axis(0.707f, 0.707f, 0.0f); D3DXMatrixRotationAxis(&R, &axis, D3DX_PI / 2.0f);

Формулу, по которой функция D3DXMatrixRotationAxis вычисляет матрицу вращения вы найдете в книге Эрика Ленджела «Mathematics for 3D Game Programming & Computer Graphics».



12.2.2. Вращение относительно произвольной оси

Чтобы реализовать методы для поворота нашей камеры, нам необходима возможность вращать ее относительно произвольной оси. Для этой цели библиотека D3DX предоставляет следующую функцию:

D3DXMATRIX *D3DXMatrixRotationAxis( D3DXMATRIX *pOut, // возвращает матрицу вращения CONST D3DXVECTOR3 *pV, // ось вращения FLOAT Angle // угол поворота в радианах );



Содержание раздела