-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathetapa1.c
108 lines (88 loc) · 3.5 KB
/
etapa1.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/* _\|/_
(o o)
+----oOO-{_}-OOo--------------------------------------------------------------+
| |
| P L I M U S C I R C U S |
| |
| Alumnos : Isaac Jurado Peinado [C2H5OH] |
| Esteban Martínez Tristancho [Tito Houzy] |
| Asignatura: Informática Gráfica I |
| Profesor : Jose María Buades Rubio |
| Curso : 2003/2004 |
| Estudios : Ingeniería Técnica en Informática de Gestión (TIG2) |
| Facultad : Universitat de les Illes Balears (UIB) |
| |
+----------------------------------------------------------------------------*/
/*
* etapa1.c
*/
#include "gl_headers.h"
/* Tamaño incial de la ventana */
const int W_WIDTH = 500;
const int W_HEIGHT = 500;
/* Variable que indica el ángulo de rotación de los ejes. */
GLfloat fAngulo;
void Display (void)
{
/* Borramos la escena */
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
/* Rotamos las proximas primitivas */
glRotatef(fAngulo, 0.0f, 0.0f, 1.0f);
/* Creamos a continuación dibujamos los tres poligonos */
glBegin(GL_POLYGON);
glColor3f (1.0f, 1.0f, 1.0f);
glVertex3f(0.0f, 0.0f, 0.0f);
glColor3f (0.0f, 1.0f, 0.0f);
glVertex3f(1.0f, 0.0f, 0.0f);
glColor3f (0.0f, 1.0f, 0.0f);
glVertex3f(-0.5f, 0.866f, 0.0f);
glEnd();
glBegin(GL_POLYGON);
glColor3f (1.0f, 1.0f, 1.0f);
glVertex3f(0.0f, 0.0f, 0.0f);
glColor3f (1.0f, 0.0f, 0.0f);
glVertex3f(1.0f, 0.0f, 0.0f);
glColor3f (0.0f, 0.0f, 1.0f);
glVertex3f(-0.5f, -0.866f, 0.0f);
glEnd();
glBegin(GL_POLYGON);
glColor3f (1.0f, 1.0f, 1.0f);
glVertex3f(0.0f, 0.0f, 0.0f);
glColor3f (0.0f, 1.0f, 1.0f);
glVertex3f(-0.5f, 0.866f, 0.0f);
glColor3f (0.0f, 0.0f, 1.0f);
glVertex3f(-0.5f, -0.866f, 0.0f);
glEnd();
glPopMatrix();
glFlush();
}
void Idle (void)
{
/* Incrementamos el ángulo */
fAngulo += 0.3f;
/* Si es mayor que dos pi la decrementamos */
if (fAngulo > 360)
fAngulo -= 360;
/* Indicamos que es necesario repintar la pantalla */
glutPostRedisplay();
}
int main (int argc, char **argv)
{
/* Inicializamos la librería GLUT */
glutInit(&argc, argv);
/* Indicamos como ha de ser la nueva ventana */
glutInitWindowPosition(100,100);
glutInitWindowSize(W_WIDTH, W_HEIGHT);
glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE);
/* Creamos la nueva ventana */
glutCreateWindow("Ventana principal");
/* Indicamos cuales son las funciones de redibujado e idle */
glutDisplayFunc(Display);
glutIdleFunc(Idle);
/* El color de fondo será el blanco (RGBA, RGB + Alpha channel) */
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
/* Comienza la ejecución del core de GLUT */
glutMainLoop();
return 0;
}