【问题标题】:OpenGL 3D Cube RotationOpenGL 3D 立方体旋转
【发布时间】:2013-06-18 15:32:16
【问题描述】:

所以我有一个 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);

}

angle、x、y、z是我对矩阵进行变换后得到的值。

我做错了什么?

谢谢。

【问题讨论】:

    标签: android opengl-es transform cube


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢!我不知道它是以度为单位的,所以我只是乘以 57.2957795 以获得度数,它就像一个魅力!
    猜你喜欢
    • 1970-01-01
    • 2016-02-20
    • 2021-08-04
    • 1970-01-01
    • 2021-06-23
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多