Java glTranslate/rotate在我的代码中不起作用

Java glTranslate/rotate在我的代码中不起作用,java,opengl,transformation,jogl,Java,Opengl,Transformation,Jogl,我想画一个立方体并进行转换,但是模型视图矩阵上的转换似乎不起作用。它们没有任何效果 gl.glClearColor(0, 0, 0, 0); gl.glClear(GL.GL_COLOR_BUFFER_BIT); gl.glClear(gl.GL_DEPTH_BUFFER_BIT); gl.glFrustum(-10, 10, -10, 10, 0.01, 20); gl.glMatrixMode(GL.GL_MODELVIEW); gl.glLoadIdentity();

我想画一个立方体并进行转换,但是模型视图矩阵上的转换似乎不起作用。它们没有任何效果

gl.glClearColor(0, 0, 0, 0);
gl.glClear(GL.GL_COLOR_BUFFER_BIT);
gl.glClear(gl.GL_DEPTH_BUFFER_BIT);
gl.glFrustum(-10, 10, -10, 10, 0.01, 20);



gl.glMatrixMode(GL.GL_MODELVIEW);
    gl.glLoadIdentity();
    gl.glTranslated(0.8, 0, 0); //no effect
    gl.glRotated(30, 1, 0, 0); //no effect
    drawCube(gl);

public void drawCube(GL gl) {

    gl.glMatrixMode(GL.GL_MODELVIEW);

    //spate
    gl.glLoadIdentity();
    drawSquare(gl);
    //fata
    gl.glLoadIdentity();
    gl.glTranslated(0, 0, WIDTH);
    drawSquare(gl);

    //st
    gl.glLoadIdentity();
    gl.glRotated(-90, 0, 1, 0);
    drawSquare(gl);

    //dr
    gl.glLoadIdentity();
    gl.glRotated(-90, 0, 1, 0);
    gl.glTranslated(0, 0, -WIDTH);
    drawSquare(gl);

    //sus
    gl.glLoadIdentity();
    gl.glRotated(90, 1, 0, 0);
    drawSquare(gl);
    //jos
    gl.glLoadIdentity();
    gl.glRotated(90, 1, 0, 0);
    gl.glTranslated(0, 0, -WIDTH);
    drawSquare(gl);

}

public void drawSquare(GL gl) {
    gl.glPolygonMode(GL.GL_FRONT_AND_BACK, GL.GL_FILL);
    gl.glBegin(GL.GL_POLYGON);
        gl.glTexCoord2d(0, 0);
        gl.glVertex3d(0, 0,0);

        gl.glTexCoord2d(0, 1);
        gl.glVertex3d(0, WIDTH,0);

        gl.glTexCoord2d(1, 1);
        gl.glVertex3d(WIDTH, WIDTH,0);

        gl.glTexCoord2d(1, 0);
        gl.glVertex3d(WIDTH, 0,0);
    gl.glEnd();
}
drawCube()内部
您正在重置modelview矩阵:

gl.glMatrixMode(GL.GL_MODELVIEW);

//spate
gl.glLoadIdentity();
我怀疑您想在这里使用
glPushMatrix()
glPopMatrix()

作为旁注:自OpenGL 3.1以来,这些操作已被弃用。

drawCube()中。
您正在重置modelview矩阵:

gl.glMatrixMode(GL.GL_MODELVIEW);

//spate
gl.glLoadIdentity();
我怀疑您想在这里使用
glPushMatrix()
glPopMatrix()

作为旁注:自OpenGL 3.1以来,这些操作已被弃用