#include void Dibuja (void) { glClear(GL_COLOR_BUFFER_BIT);//Limpia la pantalla glPointSize(4.0); //lineas de separacion glBegin(GL_LINES); glColor3f(0.0, 0.0, 0.0); glVertex2i(0, 200); glVertex2i(600, 200); glVertex2i(200, 0); glVertex2i(200, 400); glVertex2i(400, 0); glVertex2i(400, 400); glEnd(); //Primera casilla //Probando GL_POLYGON glBegin(GL_POLYGON); glColor3f(1.0f, 0.0f, 0.0f); glVertex2i(430, 240); glVertex2i(540, 220); glVertex2i(590, 270); glVertex2i(570, 340); glVertex2i(500, 390); glVertex2i(440, 380); glVertex2i(410, 260); glEnd(); glBegin(GL_POINTS); glColor3f(0.0f, 1.0f, 0.0f); glVertex2i(430, 240); glVertex2i(540, 220); glVertex2i(590, 270); glVertex2i(570, 340); glVertex2i(500, 390); glVertex2i(440, 380); glVertex2i(410, 260); glEnd(); //Segunda casilla probando //GL_QUADS glBegin(GL_QUADS); glColor3f(1.0f, 0.0f, 0.0f); glVertex2i(270, 240); glVertex2i(340, 220); glVertex2i(390, 270); glVertex2i(370, 340); glVertex2i(310, 310); glVertex2i(300, 390); glVertex2i(240, 380); glVertex2i(210, 310); glEnd(); glBegin(GL_POINTS); glColor3f(0.0f, 1.0f, 0.0f); glVertex2i(270, 240); glVertex2i(340, 220); glVertex2i(390, 270); glVertex2i(370, 340); glVertex2i(310, 310); glVertex2i(300, 390); glVertex2i(240, 380); glVertex2i(210, 310); glEnd(); //Tercer casilla probando //GL_TRIANGLES glBegin(GL_TRIANGLES); glColor3f(1.0f, 0.0f, 0.0f); glVertex2i(70, 240); glVertex2i(140, 220); glVertex2i(190, 270); glVertex2i(170, 340); glVertex2i(110, 310); glVertex2i(100, 390); glVertex2i(40, 380); glVertex2i(10, 310); glVertex2i(60, 360); glEnd(); glBegin(GL_POINTS); glColor3f(0.0f, 1.0f, 0.0f); glVertex2i(70, 240); glVertex2i(140, 220); glVertex2i(190, 270); glVertex2i(170, 340); glVertex2i(110, 310); glVertex2i(100, 390); glVertex2i(40, 380); glVertex2i(10, 310); glVertex2i(60, 360); glEnd(); //Cuarta casilla probando //GL_LINES glBegin(GL_LINES); glColor3f(1.0f, 0.0f, 0.0f); glVertex2i(10, 40); glVertex2i(10, 90); glVertex2i(150, 180); glVertex2i(30, 70); glVertex2i(10,100); glVertex2i(190, 100); glEnd(); glBegin(GL_POINTS); glColor3f(0.0f, 0.0f, 1.0f); glVertex2i(10, 40); glVertex2i(10, 90); glVertex2i(150, 180); glVertex2i(30, 70); glVertex2i(10,100); glVertex2i(190, 100); glEnd(); //Quinta casilla probando //GL_LINE_STRIP glBegin(GL_LINE_STRIP); glColor3f(1.0f, 0.0f, 0.0f); glVertex2i(210, 40); glVertex2i(340, 20); glVertex2i(240, 180); glVertex2i(230, 70); glVertex2i(210,100); glVertex2i(390, 190); glEnd(); glBegin(GL_POINTS); glColor3f(0.0f, 0.0f, 1.0f); glVertex2i(210, 40); glVertex2i(340, 20); glVertex2i(240, 180); glVertex2i(230, 70); glVertex2i(210,100); glVertex2i(390, 190); glEnd(); //Sexta casilla probando //GL_LINE_LOOP glBegin(GL_LINE_LOOP); glColor3f(1.0f, 0.0f, 0.0f); glVertex2i(410, 40); glVertex2i(540, 20); glVertex2i(440, 180); glVertex2i(430, 70); glVertex2i(410,100); glVertex2i(590, 190); glEnd(); glBegin(GL_POINTS); glColor3f(0.0f, 0.0f, 1.0f); glVertex2i(410, 40); glVertex2i(540, 20); glVertex2i(440, 180); glVertex2i(430, 70); glVertex2i(410,100); glVertex2i(590, 190); glEnd(); glFlush();//Envia el contenido del buffer a pantalla } void Redimensiona (int ancho, int alto) { glClearColor(1.0f, 1.0f, 1.0f, 0.0f); glViewport(0, 0, (GLsizei) ancho, (GLsizei) alto); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0.0, (GLdouble) ancho, 0.0, (GLdouble) alto); } int main(int argc, char **argv) { glutInit(&argc,argv);//Inicia el toolkit //Despliega usando un solo buffer, y colores RGB glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(600, 400);//TamaƱo de la ventana en pixeles glutInitWindowPosition(100, 100);//Posicion en la pantalla glutCreateWindow("Primitivas Graficas");//Crear la ventana //Registro de funciones de callback glutDisplayFunc(Dibuja); glutReshapeFunc(Redimensiona); glutMainLoop(); return 0; }