1、你画图函数是在哪里画的?
2、
      glDisable(GL_TEXTURE_2D);
glEnable(GL_COLOR_MATERIAL);
glColor3d(1.0, 0.0, 0.0, 0.0f);
glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
glBegin(GL_QUADS);
glVertex3f(0.5, 0.5, 0.0);
glVertex3f(-0.5, 0.5,0.0);
glVertex3f(-0.5, -0.5, 0.0);
glVertex3f(0.5, -0.5, 0.0);
glEnd();
glBegin(GL_QUADS);
glColor3f(1.0,0.0,0.0);
glVertex3f(0.5, 0.5, 0.0);
glVertex3f(-0.5, 0.5,0.0);
glVertex3f(-0.5, -0.5, 0.0);
glVertex3f(0.5, -0.5, 0.0);
glEnd();

解决方案 »

  1.   

    MFC中视类下的OnDraw()函数中写的
      

  2.   

    2楼代码运行的结果是error C2660: 'glColor3d' : function does not take 4 parameters
      

  3.   

    2楼的代码即使把glColor3d改为glColor4d也是不可以一面为红色,一面为绿色的,是不是我写的代码不对啊?谁能具体讲解一下,先,谢谢了
      

  4.   

    如果我没记错的话,glVertex3f()函数的第三个参数是Z轴坐标,而在OpenGL里,Z轴是垂直于屏幕的,原点在屏幕上。
    而你的程序中所有四边形的Z坐标都在原点上(都是0.0),等于刚好把两个四边形都叠放在屏幕上,你如何看得到四边形?建议把四边形往屏幕里推一点,比如都设成-2.0:
    glDisable(GL_TEXTURE_2D); 
    glEnable(GL_COLOR_MATERIAL); 
    glColor3d(1.0,   0.0,   0.0,   0.0f); 
    glPolygonMode(GL_FRONT_AND_BACK,GL_FILL); 
    glBegin(GL_QUADS); 
    glVertex3f(0.5,   0.5,   -2.0); 
    glVertex3f(-0.5,   0.5,  -2.0); 
    glVertex3f(-0.5,   -0.5,  -2.0); 
    glVertex3f(0.5,   -0.5,   -2.0); 
    glEnd(); 
    glBegin(GL_QUADS); 
    glColor3f(1.0,0.0,0.0); 
    glVertex3f(0.5,   0.5,   -2.0); 
    glVertex3f(-0.5,   0.5,  -2.0); 
    glVertex3f(-0.5,   -0.5,   -2.0); 
    glVertex3f(0.5,   -0.5,   -2.0); 
    glEnd();