QT-OpenGl Vertex没有重绘

时间:2014-07-24 20:45:16

标签: qt opengl

我有一个简单的openGl程序,当我更改微调器时应重绘它。 当调用paintGL方法时,我的顶点三角形的颜色会发生变化,但它们的数量(基于微调器)不会发生变化。

我的代码如下:

            void  GLWidget::paintGL()
            {

                glLoadIdentity();
                glMatrixMode(GL_MODELVIEW);
                glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_COLOR) ;
                glClearColor(0.0, 0.0, 0.0, 0.0);
                for(int i=0;i<numVertex;i++){
                    glBegin(GL_TRIANGLE_FAN);
                        drawTriangle(i);
                    glEnd();
                }
             qDebug("numVetex %d",numVertex);

            };
           void GLWidget::drawTriangle(int iteraction){

                float theta=thetaIncrement*iteraction;
                float x=  radius*qCos(theta);
                float y=radius*qSin(theta);
                double r=((double) rand() / (RAND_MAX));
                double g=((double) rand() / (RAND_MAX));
                double b=((double) rand() / (RAND_MAX));
                glColor3f(r,g,b);
                glVertex3f( 0.0f, 0.0f, 0.0f);
                glVertex3f(x,y,0.0f);
                theta=thetaIncrement*(iteraction+1);
                x= radius*qCos(theta);
                y=radius*qSin(theta);
                glVertex3f( x,y, 0.0f);

            }

即使我没有绘制任何东西,例如,偶数个顶点我只是在paintGl上返回,已经绘制的顶点仍然显示在屏幕上。

任何建议?

1 个答案:

答案 0 :(得分:1)

你的glClear调用没有有效参数删除GL_COLOR部分:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) ;