0

我正在使用 Android 的 OpenGL 中的模型进行旋转。

为什么下面的这两个示例不会产生相同的结果?x我想,当我绕轴旋转然后yy然后旋转时,没有区别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
4

1 回答 1

0

除非同时应用这些轮换,否则我认为顺序肯定很重要。

如果我有一个立方体,我围绕x 轴旋转它并将正面移动到顶部,在围绕y 轴旋转之后,原来的正面仍然在顶部

相反,如果我首先围绕y 轴旋转,则原始正面将被移到一边,因此当我随后围绕x 轴旋转时,原始正面不会旋转到顶部

我相信轮换顺序确实很重要。

于 2012-09-16T05:05:59.337 回答