Я недавно начал работать с OpenGL ES для iPhone, и у меня возникли некоторые проблемы с ним. Я хочу иметь возможность вращать объект пальцами. Моя проблема в том, что мой объект находится в точке (0, 0, -3), и я хотел бы повернуть его вокруг его центра. Я знаю, что мне нужно перевести обратно в исходное положение, повернуть, а затем вернуть его в исходное место. Я думаю, что столкнулся с проблемой, потому что я использую матрицу для отслеживания (?) Всех моих вращений / перевода / масштабирования и т. Д., И я думаю, что это может быть объединение операций таким образом, что порядок даже не рассматривается ( два перевода отменяют друг друга). Я только начал изучать OpenGL день назад и являюсь новичком, поэтому моё предположение может быть неверным.
Вот часть in drawView, с которой у меня возникают проблемы:
GLfloat matrix[16];
glGetFloatv(GL_MODELVIEW_MATRIX, matrix);
glLoadIdentity();
glTranslatef(0, 0, 3); // bring to origin
glRotatef(self.angle, self.dy, self.dx, 0); // rotate
glTranslatef(0, 0, -3); // put it back in place
glMultMatrixf(matrix); // save the transformations performed
Помощь будет высоко ценится, спасибо!