Я пытаюсь отобразить объект в представлении, которое может быть повернуто естественно путем перетаскивания курсора/сенсорного экрана. В данный момент у меня есть вращение X и Y объекта как это
glRotatef(rotateX, 0f, 1f, 0f); // Dragging along X, so spin around Y axis
glRotatef(rotateY, 1f, 0f, 0f);
Я понимаю, почему это не делает то, что я хочу, чтобы это сделало (например, если Вы вращаете его, правильные 180 градусов, вверх и вниз по вращению инвертируется). Я просто не могу выяснить путь к обоим направлениям для пребывания лево-правым и вниз относительно средства просмотра.
Я могу предположить, что камера починена и смотрящий вдоль оси Z. Какие-либо идеи?
Лучше всего реализовать на основе Quaternion вращение. В мире Quaternion каждый раз, когда вы вращаете, он будет выровнен по оси, указанной вами, без влияния предыдущих вращений. Вот почему он не страдает от блокировки кардана.
Я нашел эти страницы полезными для реализации кватернионов:
Удачи. Я уверен, что есть и другие решения, но это одно из самых чистых, которые у вас есть.