//Algoritmo para graficar circulos en coordenadas rectangulares
#include <GL/glut.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
void init (void)
{
//color de la pantalla
glClearColor(0.5,0.5,0.5,0.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D (-400.0, 400.0, -300.0, 300.0);
}
void circulo()
{
glColor3f(1.0,0.2,0.2);//DEFINO COLOR
// glClear(GL_COLOR_BUFFER_BIT);
int r=0; //radio
int origenx=0,origeny=0; //origen en la coordenada (0,0)
int x,y; //contador desde 0 a 360
while(r<300){ ///mientras que no llegue al rope
for( x=0; x<=360; x++){
y=origeny+sqrt((r*r)-((origenx-x)*(origenx-x)));
glBegin(GL_POINTS); //Inicio de dibujar los puntos del circulo
glVertex2d(x,y); //pintar en el cuadrante 1
glVertex2d(-x,-y);//pintar en el cuadrante 2
glVertex2d(-x,y);//pintar en el cuadrante 3
glVertex2d(x,-y);//pintar en el cuadrante 4
glEnd();
}
r=r+2; //incremento r ,es decir, el tamaño del circulo
}
glFlush();
}
int main(int argc, char ** argv)
{
clock_t t_ini, t_fin;//reloj inicio,fin
double t_total; //tiempo que tardo la aplicacion
t_ini = clock(); //iniciar reloj
//Se inicializa la pantalla grafica
glutInit(&argc,argv);
//Se establece el modo de visualizacion
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
//Se establece coordenadas de pantalla
glutInitWindowSize(800,600);
//Se crea la ventana de visualizacion
glutCreateWindow("Algoritmo para trazar circulos en coordenadas rectangulares");
//Se ejecuta la funcion de inicializacion de parametros
init();
glutDisplayFunc(circulo);
t_fin = clock();//parar reloj
t_total= (double)(t_fin - t_ini) / CLOCKS_PER_SEC; //calculo el tiempo que tardo
printf("Tardo: %.16g milisegundos\n", t_total * 1000.0);//total en milisegundos
glutMainLoop();
return 0;
}
Comentarios sobre la versión: 1.0 (0)
No hay comentarios