opengl glTranslatef()无法在我的代码

时间:2016-02-14 11:39:11

标签: opengl

我必须在中间制作4个矩形并将它们转换为不同的矩形 位置。 有了这个我所有的歌曲得到第一次翻译我也pushMatrix但没有。 请帮帮我

  #include <GL\glut.h>
     void display() {
     glClearColor(1,1,1,1);
         glClear(GL_COLOR_BUFFER_BIT);

                       glLineWidth(3);

                          glColor3f(0,0,1);
 glBegin(GL_LINES);
         glVertex2f(0,-24);
            glVertex2f(0,24);

             glVertex2f(-32,0);
             glVertex2f(32,0);
           glEnd();


      glTranslatef(-32,-14,0);
      glColor3f(1,0,0);
     glRecti(0,0,20,10);



 glTranslatef(10,5,0);
     glColor3f(0,1,0);
     glRecti(0,0,20,10);

glFlush();
  }
  int main(int argc, char** argv){
     glutInit(&argc,argv);
     glutInitWindowPosition(50,50);
     glutInitWindowSize(640,480);
     glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
     glutCreateWindow("Example");
     glMatrixMode(GL_PROJECTION);
     gluOrtho2D(-32,32,-24,24);
     glutDisplayFunc(display);
     glutMainLoop();
     return 0;
     }

1 个答案:

答案 0 :(得分:0)

这是因为你让GL_PROJECTION处于活动状态:

glMatrixMode(GL_PROJECTION);
gluOrtho2D(-32,32,-24,24);

之后你必须激活模型视图:

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();