我在Android的OpenGL中使用模型旋转。
为什么下面这两个例子不会产生相同的结果?我想,当我围绕轴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
答案 0 :(得分:0)
除非这些轮换同时应用,否则我认为顺序绝对重要。
如果我有一个立方体,我围绕 x轴旋转它并将正面移动到顶部,旋转后围绕 y轴,原始正面仍然位于顶部。
如果我首先围绕 y轴旋转,那么原始正面会被移到一边,所以当我围绕 x轴旋转 原始正面将 NOT 旋转至顶部。
我认为轮换顺序确实很重要。