//Autor:Daniel Soriano Grande Matricula:200917141
//Algoritmo para graficar circulos en coordenadas polares
#include <GL/glut.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
void init (void)
{
//color de la pantalla
glClearColor(0.0,0.0,0.0,0.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D (-400.0, 400.0, -300.0, 300.0);
}
void circulo()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,0.2,0.2);//DEFINO COLOR
int r=0; //radio
int x,y; //Calcular nuevas coordenadas x,y
int tetar; //Calcular el angulo
int teta;
while(r<300){ ///mientras que no llegue al rope
for( teta=0; teta<360; teta++){
tetar=(int)((teta*180)/M_PI);
x=(int)(r*cos(tetar)); //calculo de x
y=(int)(r*sin(tetar)); //calculo de y
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 polares");
//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