Java 使用glRotatef()时OpenGL的坐标问题

Java 使用glRotatef()时OpenGL的坐标问题,java,opengl,rotation,opengl-compat,Java,Opengl,Rotation,Opengl Compat,对于OpenGL(使用LWJGL),我是一个初学者,我正在尝试对模型应用90度旋转。问题是,当旋转应用于模型时,它似乎也会改变其坐标,导致模型被放置在边界之外。我已尝试转换坐标,但不确定在何处使用此方法,也不知道将哪些参数用于glTranslate()。以下是我正在使用的代码段: public void renderModel(int index) { Model model = Editor.models.get(index); glMatrixMode(GL_MODELVIE

对于OpenGL(使用LWJGL),我是一个初学者,我正在尝试对模型应用90度旋转。问题是,当旋转应用于模型时,它似乎也会改变其坐标,导致模型被放置在边界之外。我已尝试转换坐标,但不确定在何处使用此方法,也不知道将哪些参数用于
glTranslate()
。以下是我正在使用的代码段:

public void renderModel(int index) {
    Model model = Editor.models.get(index);
    glMatrixMode(GL_MODELVIEW);

    // apply rotation
    float rotation = 90f;
    glRotate(rotation, 0, 1, 0);

    for (int triangle = 0; triangle < model.face_cnt; triangle++) {
        if (model.face_verts.get(triangle).length == 3) {
            glBegin(GL_TRIANGLES);
        } else {
            glBegin(GL_QUADS);
        }
        for (int i = 0; i < model.face_verts.get(triangle).length; i++) {
                int point_a = model.face_verts.get(triangle)[i];

                float modelX = (float)((model.vert_x.get(point_a)) + x);
                float modelZ = (float)((model.vert_y.get(point_a)) - z4);
                float modelY = (float)((model.vert_z.get(point_a)) + y);

                glVertex3f(modelX, -modelZ, -modelY); // draw
        }
        glEnd();
    }
}
public void renderModel(int索引){
Model=Editor.models.get(索引);
glMatrixMode(GLU模型视图);
//应用旋转
浮动旋转=90f;
glRotate(旋转,0,1,0);
对于(int triangle=0;triangle
不要将平移添加到顶点坐标(删除
+x
-z4
+y

旋转模型,然后平移它。之前必须取消,因为传统的OpenGL矩阵操作指定了一个矩阵,并将当前矩阵乘以新矩阵:

public void renderModel(int索引){
Model=Editor.models.get(索引);
glMatrixMode(GLU模型视图);
//应用旋转
浮动旋转=90f;
glTranslate(x,-z4,y);
glRotate(旋转,0,1,0);
对于(int triangle=0;triangle