0

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

gl.glRotatef(角度, x, y, z);

但是,立方体没有正确旋转,看起来像方法

glTranslatef (浮动 x, 浮动 y, 浮动 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 是我在变换矩阵后得到的值。

我做错了什么?

谢谢你。

4

1 回答 1

0

当你运行那个程序时你看到了什么?

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

“角度”部分以度为单位。我犯了几次弧度的错误,我的对象似乎没有旋转。此外,glTranslatef 将在 +/- xyz 方向移动您的对象。传统上,+y 向上,+x 向右,+z 进入屏幕。这一切都可以根据一些不同的事情而改变,比如你的视图矩阵。

于 2013-06-18T15:42:49.870 回答