我想實現的東西簡單:設置X軸的平移和旋轉物體圍繞它由一個固定的角度中心。平移和旋轉圍繞中心
要做到這一點,據我目前所知,有必要將對象移動到中心,旋轉和移動回原來的位置。好的。雖然我得到的問題是,它看起來像對象旋轉它的本地軸,並沿着這些軸做最後一次翻譯,因此它以錯誤的位置結束。
這是我的代碼:
public void draw(GL10 gl) {
gl.glLoadIdentity();
GLU.gluLookAt(gl, 0, 0, 5, 0, 0, 0, 0, 1, 0);
gl.glTranslatef(x, 0, 0);
gl.glTranslatef(-x, 0, 0);
gl.glRotatef(-80, 0, 1, 0);
gl.glTranslatef(x, 0, 0);
gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId);
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
gl.glFrontFace(GL10.GL_CW);
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, verticesBuffer);
gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, textureBuffer);
gl.glDrawElements(GLES20.GL_TRIANGLES, indices.length, GLES10.GL_UNSIGNED_SHORT, indicesBuffer);
}
旋轉的對象應該是在0,0,0之前。它正確旋轉。但是,它接近屏幕,就好像x軸會指向我(80°)一樣。
注:我只讓「OpenGL的」作爲標籤,因爲這是一個普通的OpenGL的問題,答案不應該是Android的相關。