/* USO DE: gluPerspective(ANGULO(y), ANCHO/ALTO, z_CERCA, z_LEJOS) */ /* FRUSTUM(); */ #include <GL/glut.h> #include <unistd.h> void PintaEjes() { glBegin(GL_LINES); glColor3f(1,0,0); glVertex3f(-5, 0, 0); glVertex3f(5, 0, 0); glColor3f(0,1,0); glVertex3f(0, -5, 0); glVertex3f(0, 5, 0); glColor3f(0,0,1); glVertex3f(0, 0, -5); glVertex3f(0, 0, 5); glEnd(); } void Gradua ( ) { int k=0, x1,y1,x2,y2; glBegin(GL_LINES); glColor3f(1,0,0); for(k=1; k<10; k++) { glVertex3f(-5+k, 0.2, 0); glVertex3f(-5+k, -0.2, 0); } glColor3f(0,1,0); for(k=1; k<10; k++) { glVertex3f(0.2, -5+k, 0); glVertex3f(-0.2, -5+k, 0); } glColor3f(0,1,0); for(k=1; k<10; k++) { glVertex3f(0.2, 0, -5+k); glVertex3f(-0.2, 0, -5+k); } glEnd(); } void Dibuja(void) { glClearColor(0.0,0.0,0.0,0.0); glClear(GL_COLOR_BUFFER_BIT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-5.0,5.0, -5.0,5.0, -5.0,5.0); PintaEjes( ); Gradua( ); glMatrixMode(GL_MODELVIEW); gluPerspective(60.0,1.0,1.0,100.0); //gluFrustum(-x,x,-y,y,-z,z); glTranslatef(0.0,0.0,-3.0); glBegin(GL_QUADS); glColor3f(1.0f, 1.0f, 0.0f); glVertex3f(-2.0f, -2.0f, 0.0f); glVertex3f(2.0f, -2.0f, 0.0f); glVertex3f(2.0f, 2.0f, 0.0f); glVertex3f(-2.0f, 2.0f, 0.0f); glEnd(); glFlush(); sleep(3); exit(0); } int main(int argc, char ** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(200,150); glutInitWindowSize(1000,500); glutCreateWindow(argv[0]); glutDisplayFunc(Dibuja); glutMainLoop(); return 0; }