所以我有一个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是变换矩阵后得到的值。
我做错了什么?
谢谢。
答案 0 :(得分:0)
您在运行该程序时看到了什么?
为了确保,glRotatef的定义在这里: http://msdn.microsoft.com/en-us/library/windows/desktop/dd368577(v=vs.85).aspx
'angle'部分以度为单位。我犯了几次把弧度递给它的错误,看来我的物体没有旋转。此外,glTranslatef将以+/- xyz方向移动您的对象。传统上,+ y向上,+ x向右,+ z进入屏幕。这可以根据一些不同的东西而改变,例如你的视图矩阵。