Quelques exemples

previoustopnext

Dessiner un cercle

drawCircle1()
 {
    GLint i;
    GLfloat cosine, sine;
 
    glBegin(GL_POLYGON);
       for(i=0;i<100;i++){
          cosine=cos(i*2*PI/100.0);
          sine=sin(i*2*PI/100.0);
          glVertex2f(cosine,sine);
       }
    glEnd();
 }
 

Optimisons un peu

drawCircle2()
 {
    GLint i;
    GLfloat cosine, sine;
    static GLfloat circoords[100][2];
    static GLint inited=0;
 
    if(inited==0){
       inited=1;
       for(i=0;i<100;i++){
          circcoords[i][0]=cos(i*2*PI/100.0);
          circcoords[i][1]=sin(i*2*PI/100.0);
       }
    }
    glBegin(GL_POLYGON);
       for(i=0;i<100;i++)
          glVertex2fv(&circcoords[i][0]);
    glEnd();
 }
 

Et avec une display list

#define MY_CIRCLE_LIST 1 // jamais 0 !
 
 buildCircle3()
 {
    GLint i;
    GLfloat cosine, sine;
 
    glNewList(MY_CIRCLE_LIST, GL_COMPILE);
       glBegin(GL_POLYGON);
          for(i=0;i<100;i++){
             cosine=cos(i*2*PI/100.0);
             sine=sin(i*2*PI/100.0);
             glVertex2f(cosine,sine);
          }
       glEnd();
    glEndList();
 }
 
 Exécution par glCallList(MY_CIRCLE_LIST);

Michel Buffa

ESSI