miércoles, 19 de febrero de 2014

Práctica 2 Code Blocks

En esta práctica utilizaremos la primitiva llamada GL_QUADS y GL_TRIANGLEs para dibujar cuadros y triángulo sobre sí mismos. GL_QUADS necesita 4 vértices (gVertex) para poder ser dibujado, mientras que GL_TRIANGLES necesita 3.
Para empezar, todos los códigos son exactamente los mismos, lo único que cambiaremos será en glBegin al darle los parámetros. Como las paqueterías son las mismas, no las he puesto en el código.


void display(void)
{
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glClear(GL_COLOR_BUFFER_BIT);
    glPointSize(1);
    glLineWidth(5);
    gluOrtho2D(-10,10,-10,10);
    glColor3f(1.0,0.0,0.0);
    float j=0;//Esta variable es usada para cambiar el color de cada cuadro y se diferencien.
    glBegin(GL_QUADS); /*Aquí es donde colocaremos una de las primitivas ya mencionadas, en este caso es GL_QUADS*/
    for(int i=10;i>0;i--)//Usamos un ciclo para dibujar el cuadro en sí mismo un determinado número de veces
        {
                    j=j+0.1;
                    glColor3f(0.0,0.0,j);//Como la variable cambia de valor, el color también
/*A continuación se dibujan cada uno de los vértices del cuadro que cambiarán de posición con cada iteración*/
                    glVertex2i(-i,i);//Vértice superior izquierdo
                    glVertex2i(i,i);//Vértice superior derecho
                    glVertex2i(i,-i);//Vértice inferior derecho
                    glVertex2i(-i,-i);//Vértice inferior izquierdo
        }
    glEnd();
    glFlush();
}

El resultado será:


Ahora para usar la primitiva GL_TRIANGLES solo lo ponemos como parámetro en el glBegin mientras que todo lo demás se queda igual.
float j=0;
    glBegin(GL_TRIANGLES);
    for(int i=10;i>0;i--)
        {
                    j=j+0.1;
                    glColor3f(j,j,0.0);
                    glVertex2i(0,i);//Vértice superior
                    glVertex2i(i,-i);//Vértice derecho
                    glVertex2i(-i,-i);//Vértice izquierdo
        }
Esta es la imagen de como queda dibujado:



El ciclo comienza abarcando toda la pantalla, mientras se decrementa con cada iteración, así logramos que se haga pequeño cada vez más y más.


No hay comentarios:

Publicar un comentario