Я вращаюсь с моделью в Android OpenGL.OpenGL ES rotate model in 3 axis
Почему эти два примера ниже не дают одинаковых результатов? Я думал, нет никакой разницы, когда я вращаюсь вокруг оси x
, а затем y
или y
, а затем x
.
gl.glRotatef(_angleY, 0f, 1f, 0f); //ROLL
gl.glRotatef(_angleX, 1f, 0f, 0f); //ELEVATION
gl.glRotatef(_angleZ, 0f, 0f, 1f); //AZIMUTH
gl.glRotatef(_angleX, 1f, 0f, 0f); //ELEVATION
gl.glRotatef(_angleY, 0f, 1f, 0f); //ROLL
gl.glRotatef(_angleZ, 0f, 0f, 1f); //AZIMUTH
Поздравляем, вы только что нашли ** одну ** причин, по которым углы Эйлера обычно представляют собой плохое представление для ротации: существует огромное количество разных условностей и ** они действительно все дают разные результаты **, и все думают, что его конвенция стандартная, хотя все они одинаково (un) мощные. –