#include #include #include void ejesCoordenada() { glLineWidth(2.5); glBegin(GL_LINES); glColor3f(1.0,0.0,0.0); glVertex2f(0,10); glVertex2f(0,-10); glColor3f(0.0,0.0,1.0); glVertex2f(10,0); glVertex2f(-10,0); glEnd(); glLineWidth(1.5); int i; glColor3f(0.0,1.0,0.0); glBegin(GL_LINES); for(i = -10; i <=10; i++){ if (i!=0) { if ((i%2)==0){ glVertex2f(i,0.4); glVertex2f(i,-0.4); glVertex2f(0.4,i); glVertex2f(-0.4,i); }else{ glVertex2f(i,0.2); glVertex2f(i,-0.2); glVertex2f(0.2,i); glVertex2f(-0.2,i); } } } glEnd(); glLineWidth(1.0); } void dibujarCuadrado() { glBegin(GL_LINE_LOOP); glVertex2f(-1,1); glVertex2f(1,1); glVertex2f(1,-1); glVertex2f(-1,-1); glEnd(); } void dibujarTriangulo() { glBegin(GL_LINE_LOOP); glVertex2f(0,0); glVertex2f(0,1); glVertex2f(-1,0); glEnd(); glBegin(GL_LINE_LOOP); glVertex2f(0,0); glVertex2f(0,-1); glVertex2f(1,0); glEnd(); } void display(){ glClearColor(0.0f, 0.0f, 0.0f ,1.0f); glClear(GL_COLOR_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); ejesCoordenada(); glColor3f(1.0,1.0,0.0); glTranslatef(2.0,1.0,0.0); dibujarCuadrado(); glColor3f(1.0,0.5,0.5); glTranslatef(3.0,0.0,0.0); glScalef(2.0,2.0,2.0); dibujarTriangulo(); glFlush(); } void cambioventana(int w, int h){ float aspectratio; if (h==0) h=1; glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); aspectratio = (float) w / (float) h; if (w<=h) { glOrtho(-10, 10, -10/aspectratio, 10/aspectratio, 1.0, -1.0); }else{ glOrtho(-10*aspectratio, 10*aspectratio, -10, 10, 1.0, -1.0); } } int main(int argc,char** argv) { glutInit(&argc,argv); glutInitWindowSize (500, 500); glutInitWindowPosition (10, 50); glutCreateWindow ("Mi primera ventana"); glutDisplayFunc(display); glutReshapeFunc(cambioventana); glutMainLoop(); return 0; }