Beruflich Dokumente
Kultur Dokumente
0\blue0;}
{\fs20\f1\cf0 1 /*\line 2 MainFiguras_comp copy.cpp\line 3 Examen Final, R
obot Humanoide - Computacion Grafica FI unam www.openboxer.260mb.com \line 4 "
share your miMainFiguras_comp copy.cppnd!"*/\line 5 \line 6 //#include <gl/g
l.h>
// The GL Header File\line 7 //#include <windows.h> //Solo para Wind
ows\line 8 //#include <GL/glut.h> // The GL Utility Toolkit (Glut) Header\li
ne 9 //#include <stdlib.h>
// Descomentar para Linux\line 10 //#include
<stdio.h>\line 11 //#include <string.h>\line 12 //#include <malloc.h>
//
Solo para Windows\line 13 \line 14 #include "texture.h"\line 15 #include "fig
uras.h"\line 16 #include "Camera.h"\line 17 \line 18 //NEW//////////////////N
EW//////////////////NEW//////////////////NEW////////////////\line 19 CCamera ob
jCamera; \line 20 \line 21 GLfloat g_lookupdown = 0.0f;
// Look Position In
The Z-Axis (NEW) \line 22 //NEW//////////////////NEW//////////////////NEW/////
/////////////NEW////////////////\line 23 \line 24 int font=(int)GLUT_BITMAP_HE
LVETICA_18;\line 25 \line 26 //Otras opciones son:\line 27 /*GLUT_BITMAP_8_BY
_13\line 28 GLUT_BITMAP_9_BY_15\line 29 GLUT_BITMAP_TIMES_ROMAN_10\line 30 GL
UT_BITMAP_TIMES_ROMAN_24\line 31 GLUT_BITMAP_HELVETICA_10\line 32 GLUT_BITMAP_
HELVETICA_12\line 33 GLUT_BITMAP_HELVETICA_18*/\line 34 \line 35 \line 36 \l
ine 37 GLUquadricObj *quadratic;
// Storage For Our Quadratic Objects
( NEW )\line 38 \line 39 \line 40 //GLfloat Diffuse[]= \'7b 1.0f, 1.0f, 1.0f,
1.0f \'7d;
// Diffuse Light Values\line 41 GLfloat Diffuse[]= \'7b
0.5f, 0.5f, 0.5f, 1.0f \'7d;
// Diffuse Light Values\line 42 GLfloat
Specular[] = \'7b 1.0, 1.0, 1.0, 1.0 \'7d;
// Specular Light Values\lin
e 43 GLfloat Position[]= \'7b 0.0f, 7.0f, -5.0f, 0.0f \'7d;
// Light Pos
ition\line 44 GLfloat Position2[]= \'7b 0.0f, 0.0f, -5.0f, 1.0f \'7d;
//
Light Position\line 45 \line 46 GLfloat m_dif1[] = \'7b 0.0f, 0.2f, 1.0f, 1.0
f \'7d;
// Diffuse Light Values\line 47 GLfloat m_spec1[] = \'7b 0.0,
0.0, 0.0, 1.0 \'7d;
// Specular Light Values\line 48 GLfloat m_amb1[
] = \'7b 0.0, 0.0, 0.0, 1.0 \'7d;
// Ambiental Light Values\line 49
GLfloat m_s1[] = \'7b18\'7d;\line 50 \line 51 GLfloat m_dif2[] = \'7b 0.8f, 0.
2f, 0.0f, 1.0f \'7d;
// Diffuse Light Values\line 52 GLfloat m_spec2[
] = \'7b 0.0, 0.0, 0.0, 1.0 \'7d;
// Specular Light Values\line 53 GL
float m_amb2[] = \'7b 0.0, 0.0, 0.0, 1.0 \'7d;
// Ambiental Light Val
ues\line 54 GLfloat m_s2[] = \'7b22\'7d;\line 55 \line 56 CTexture text1;\lin
e 57 CTexture flecha;\line 58 \line 59 CFiguras fig1;\line 60 CFiguras fig2;
\line 61 \line 62 //Movimiento \line 63 float fbrazo_izq = 0.0;\line 64 floa
t fbrazo_der = 0.0;\line 65 \line 66 void InitGL ( GLvoid )
// Inicializam
os parametros\line 67 \'7b\line 68
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
// Negro de fondo \line 69 \line 70
glEnable(GL_TEXTURE_2D);\line
71 \line 72
glShadeModel (GL_SMOOTH);\line 73
//glLightfv(GL_LIGHT0, GL_
SPOT_DIRECTION, Position2);\line 74
glEnable(GL_LIGHTING);\line 75
glEna
ble(GL_LIGHT0);\line 76 \line 77
glEnable ( GL_COLOR_MATERIAL );\line 78
//glEnable(GL_CULL_FACE);\line 79
//glCullFace(GL_BACK);\line 80
//glP
olygonMode(GL_BACK, GL_LINE);\line 81 \line 82
glClearDepth(1.0f);
// Configuramos Depth Buffer\line 83
glEnable(GL_DEPTH_TEST
);
// Habilitamos Depth Testing\line 84
glDepthFunc(GL_L
EQUAL);
// Tipo de Depth Testing a realizar\line 85
glH
int(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);\line 86 \line 87
glEnable(G
L_AUTO_NORMAL);\line 88
glEnable(GL_NORMALIZE);\line 89
\line 90
t
ext1.LoadBMP("Texturas/01.bmp");\line 91
text1.BuildGLTexture();\line 92
text1.ReleaseImage();\line 93 \line 94
flecha.LoadTGA("Texturas/arrow.tga"
);\line 95
flecha.BuildGLTexture();\line 96
flecha.ReleaseImage();\line
97 \line 98
objCamera.Position_Camera(0,2.5f,7, 0,2.5f,0, 0, 1, 0);\line 9
9 \line 100 \'7d\line 101 \line 102 void pintaTexto(float x, float y, float z, v
oid *font,char *string)\line 103 \'7b\line 104 \line 105 char *c;
//Alma
cena los caracteres a escribir\line 106 glRasterPos3f(x, y, z); //Posicion ap
artir del centro de la ventana\line 107 //glWindowPos2i(150,100);\line 108 f
or (c=string; *c != '\'5c0'; c++) //Condicion de fin de cadena\line 109 \'7b\l
ine 110
glutBitmapCharacter(font, *c); //imprime\line 111 \'7d\line 112 \'
7d\line 113 \line 114 \line 115 void display ( void ) // Creamos la funcion do
nde se dibuja\line 116 \'7b\line 117
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_
BUFFER_BIT);\line 118
\line 119
glLoadIdentity();\line 120 \line 121
gl
PushMatrix(); \line 122
glRotatef(g_lookupdown,1.0f,0,0);\line 123 \line 12
4
gluLookAt( objCamera.mPos.x, objCamera.mPos.y, objCamera.mPos.z, \li
ne 125
objCamera.mView.x, objCamera.mView.y, objCamera.mView.z, \
line 126
objCamera.mUp.x, objCamera.mUp.y, objCamera.mUp.z);\
line 127
\line 128 \line 129
glPushMatrix();
\line 130
gl
PushMatrix(); //Creamos cielo\line 131
glColor3f(1.0, 1.0, 1.0);\lin
e 132
glDisable(GL_LIGHTING);\line 133
glTranslatef(0,60
,0);\line 134
fig1.skybox(130.0, 130.0, 130.0,text1.GLindex);\line 1
35
glEnable(GL_LIGHTING);\line 136
glPopMatrix();\line 137
\line 138
glPushMatrix();\line 139
glDisable(GL
_LIGHTING);\line 140
glLineWidth(2.0);\line 141
glBegin(
GL_LINES); //Ejes de Referencia\line 142
glColor3f(1.0, 0.0, 0.0)
;\line 143
glVertex3f(0.0, 0.0, 0.0);\line 144
glV
ertex3f(80.0, 0.0, 0.0);\line 145
glColor3f(0.0, 1.0, 0.0);\line
146
glVertex3f(0.0, 0.0, 0.0);\line 147
glVertex3f
(0.0, 80.0, 0.0);\line 148
glColor3f(0.0, 0.0, 1.0);\line 149
glVertex3f(0.0, 0.0, 0.0);\line 150
glVertex3f(0.0, 0
.0, 80.0);\line 151
glEnd();\line 152
glEnable(GL_LIGHTI
NG);\line 153
\line 154
glPopMatrix();\line 155
\line
156
//Poner Figuras Aqui\line 157
\line 158
glTransl
atef(0.0, 3.5, 0.0);\line 159
glColor3f(0.8, 0.0, 0.2);\line 160
fig2.prisma(4.0, 6.0, 2.0, 0.0); //PPecho\line 161 \line 162 \line 163
glPushMatrix();\line 164
glColor3f(0.2, 0.0, 0.2);\line 165
glTranslatef(0.0, 2.0, 0.0);\line 166
fig2.cilindro(1.0, 0.5
, 15, 0); //CCuello\line 167 \line 168
glColor3f(0.8, 0.0, 0.2);\li
ne 169
glTranslatef(0.0, 1.75, 0.0);\line 170
fig2.esfer
a(1.5, 15, 15, 0); //CCabeza\line 171
glPopMatrix();\line 172 \line 17
3
glPushMatrix();\line 174
glColor3f(0.2, 0.0, 0.2);\line
175
glTranslatef(3.75, 1.25, 0);\line 176
fig2.esfera(
0.75, 15, 15, 0);\line 177
glRotatef(-45, 0, 1, 0);\line 178
glRotatef(fbrazo_izq, 0, 0, 1);\line 179 \line 180
glPushMatr
ix();\line181
glColor3f(0.8, 0.0, 0.2);\line 182
glTran
slatef(2.75, 0, 0);\line 183
fig2.prisma(1.5, 4, 0.75, 0);\line 184
glPopMatrix();\line 185
glPopMatrix();\line 186
\line 187
//Brazo Derecho \line 188
glPushMatrix();\line 189
glColor3f(0.2, 0.0, 0.2);\line 190
glTranslatef(-3.75,
1.25, 0);\line 191
fig2.esfera(0.75, 15, 15, 0);\line 192
glRotatef(-135, 0, 1, 0);\line 193
glRotatef(fbrazo_der, 0, 0,
1);\line 194
glPushMatrix();\line 195
glColor3f(0.8,
0.0, 0.2);\line 196
glTranslatef(2.75, 0, 0);\line 197
fig2.prisma(1.5, 4, 0.75, 0);\line 198
glPopMatrix();\line 1
99
glPopMatrix();\line 200
\line201
//Cintura \line 202
glPushMatrix();\line 203 \line 204
glColor3f(0.0, 0.2, 0.4
);\line 205
glTranslatef(0.0,-2.25, 0.0);\line 206
fig2.
prisma(0.5,6.0,2.0,0);\line 207
//Pierna derecha \line 208
glPush
Matrix();\line 209
glColor3f(0.4, 0.0, 0.2);\line 210
g
lTranslatef(-2.0,-1.75, 0.0);\line 211
fig2.prisma(3.0,2.0,2.0,0);\l
ine 212
//pie derecho \line 213
glPushMatrix();\line 214
glColor3f(0.8, 0.0, 0.2);\line 215
glTranslatef(-1.0,-2, 0
.0);\line 216
fig2.prisma(1.0,4.0,2.0,0);\line 217
glPopM
atrix();\line 218
glPopMatrix();\line 219 \line 220 \line 221
//P
ierna izquierda \line 222
glPushMatrix();\line 223
glColor
3f(0.4, 0.0, 0.2);\line 224
glTranslatef(2.0,-1.75, 0.0);\line 225
fig2.prisma(3.0,2.0,2.0,0);\line 226
//Pie izquierdo \line 227
glPushMatrix();\line 228
glColor3f(0.8, 0.0, 0.2);\li
ne 229
glTranslatef(1.0,-2, 0.0);\line 230
fig2.prisma(1
.0,4.0,2.0,0);\line 231
glPopMatrix();\line 232
glPopMatrix(