OpenGL 3D立方体旋转

时间:2013-06-18 15:32:17

标签: android opengl-es transform cube

所以我有一个3D立方体,我有一个矩阵3x3,我转换得到一个角度和一个轴,以使用这些作为参数

gl.glRotatef(angle,x,y,z);

但是,立方体不能正确旋转,它看起来像方法

glTranslatef(float x,float y,float z)

作为一个非常重要的但我真的不知道它的作用.. 这是代码:

@Override
public void onDrawFrame(GL10 gl) {
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);        
    gl.glLoadIdentity();

    gl.glTranslatef(0.0f, 0.0f, -10.0f);

    gl.glRotatef(angle, x, y, z);

    mCube.draw(gl);

}

角度,x,y和z是变换矩阵后得到的值。

我做错了什么?

谢谢。

1 个答案:

答案 0 :(得分:0)

您在运行该程序时看到了什么?

为了确保,glRotatef的定义在这里: http://msdn.microsoft.com/en-us/library/windows/desktop/dd368577(v=vs.85).aspx

'angle'部分以度为单位。我犯了几次把弧度递给它的错误,看来我的物体没有旋转。此外,glTranslatef将以+/- xyz方向移动您的对象。传统上,+ y向上,+ x向右,+ z进入屏幕。这可以根据一些不同的东西而改变,例如你的视图矩阵。