В какой последовательности выполняется поворот с помощью матрицы?

Изучаю OpenGL ES 2. Прочитал в книге, что для поворота вершины используется такой способ

private final float[] modelMatrix = new float[16];
setIdentityM(modelMatrix, 0);
rotateM(modelMatrix, 0, 90, 1f, 0f, 0f);

Т.е. создаю модельную матрицу (modelMatrix). Делаю её единичной матрицей. А потом умножаю эту единичную матрицу на матрицу поворота. В данном случае на матрицу поворота на 90 градусов по оси X. Если поворот происходит по одной оси, то всё понятно и ясно. А если я хочу повернуть вершину по 2-м осям.

rotateM(modelMatrix, 0, 90, 1f, 1f, 0f);

Не могу понять в какой последовательности будет рассчитываться поворот. Сначала вершина будет повёрнута по оси X, а потом по Y. Или наоборот? Или одновременно?. Но как можно повернуть одновременно вообще не понятно.

Подскажите, как рассчитывается поворот по 2 или 3-м осям? Если пытаюсь делать такие повороты на практике, то получается результат который я не могу предсказать.


Ответы (0 шт):