Я пытаюсь повернуть объект в OpenGL ES вокруг его центра. Когда я использую Matrix.translateM () на той же оси, что и Matrix.setRotatem (), он меняет центр моего объекта на 0 на этой оси. Когда я пытаюсь выполнить операцию ниже:
Matrix.translateM(rotationMatrix, OFFSET, 0, 1, 0);
Matrix.setRotateM(rotationMatrix, OFFSET, 90, 0, 1, 0);
Matrix.translateM(rotationMatrix, OFFSET, 0, -1, 0);
Тогда эффект: ![enter image description here](https://i.stack.imgur.com/gHind.png)
Но когда я делаю что-то вроде этого:
Matrix.translateM(rotationMatrix, OFFSET, 0, 0, 0);
Matrix.setRotateM(rotationMatrix, OFFSET, 90, 0, 1, 0);
Matrix.translateM(rotationMatrix, OFFSET, 0, 0, 0);
Эффект: ![enter image description here](https://i.stack.imgur.com/HoQSb.png)
Вторая картинка - это правильный вид. Итак, мой вопрос: почему перевод по оси Y создает этот беспорядок.