EJEM_02_01.c



/*     JUGANDO CON glTranslatef     */


#include <GL/glut.h>
#include <unistd.h>

void PintaEjes()
{
	glBegin(GL_LINES);
		glColor3f(1,0,0); glVertex3f(-100, 0, 0); glVertex3f(100, 0, 0);
		glColor3f(0,1,0); glVertex3f(0, -100, 0); glVertex3f(0, 100, 0);
	glEnd();
}

void Gradua  ( )
{
	int k=0, x1,y1,x2,y2;

	glBegin(GL_LINES);
	glColor3f(1,0,0); for(k=0; k<200; k+=10) { glVertex3f(-100+k, 5, 0); glVertex3f(-100+k, -5, 0); }
	glColor3f(0,1,0); for(k=0; k<200; k+=10) { glVertex3f(5, -100+k, 0); glVertex3f(-5, -100+k, 0); }
	glEnd();
}

void Dibuja(void)
{
	glClearColor(0.5,0.5,0.5,0.0);			// Selecciona el color de borrado
	glClear(GL_COLOR_BUFFER_BIT);			// borra la pantalla

	glMatrixMode(GL_PROJECTION);			// proyecciOn Perspectiva
	glLoadIdentity();				// Limpiar cualquier alteración (rotar, escalar, etc.)

	glOrtho(-100.0, 100.0, -100.0, 100.0, -1.0, 1.0);	// dimensiones de la caja de dibujo
	glMatrixMode(GL_MODELVIEW);			// Perspectiva

	PintaEjes(); Gradua();
	glTranslatef(0.0,0.0,0.0);
		glBegin(GL_QUADS);
			glColor3f(0.0,1.0,1.0);		// Color para el cuadrado
			glVertex3f(-50.0,50.0,1.0);	// Coordenadas del primer vértice (superior-izquierda)
			glVertex3f(-50.0,-50.0,1.0);	// Coordenadas del segundo vértice (inferior-izquierda)
			glVertex3f(50.0,-50.0,1.0);	// Coordenadas del primer vértice (inferior-derecha)
			glVertex3f(50.0,50.0,1.0);	// Coordenadas del primer vértice (superior-derecha)
	  	glEnd();
	glFlush();

	sleep(20);
	exit(0);
}

int main(int argc, char ** argv)
{
	glutInit(&argc, argv);				// Se inicializa el sistema
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
	glutInitWindowPosition(200,150);			// Columna, Renglón
	glutInitWindowSize(500,500);
	glutCreateWindow(argv[0]);
	glutDisplayFunc(Dibuja);
	glutMainLoop();
	return 0;
}