SoloCodigo
		Programación Específica => Programación de Videojuegos => OpenGL => Mensaje iniciado por: xL3aMS1x en Jueves 20 de Febrero de 2014, 22:11
		
			
			- 
				Hola a todos/as miren tengo un prblema a la hora de copilar un ejercicio.
 
 Es es el codigo:
 
 #include <windows.h>
 #include <GL/gl.h>
 #include <GL/glu.h>
 #include <GL/glut.h>
 
 
 //--------inicializacion------
 void init(void)
 {
 glClearColor(0.0,0.0,0.0,0.0);
 glEnable(GL_DEPTH_TEST);
 glShadeModel(GL_FLAT);
 }
 
 //--------dibujar-------------
 void dibujar(void)
 {
 glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();
 gluLookAt(3,2,3,0,0,0,0,1,0);
 glPushMatrix();
 glRotatef(angulo, 0,1,0);
 
 //---primera cara----
 glBegin(GL_POLYGON);
 glColor3f(1.0,0.0,0.0);
 glVertex3f(0,0,1);
 glVertex3f(1,0,1);
 glVertex3f(1,1,1);
 glVertex3f(0,1,1);
 glEnd();
 
 //---segunda cara----
 glBegin(GL_POLYGON);
 glColor3f(0.0,1.0,0.0);
 glVertex3f(1,0,0);
 glVertex3f(0,0,0);
 glVertex3f(0,1,0);
 glVertex3f(1,1,0);
 glEnd();
 
 //---tercera cara----
 glBegin(GL_POLYGON);
 glColor3f(0.0,0.0,1.0);
 glVertex3f(0,0,0);
 glVertex3f(0,0,1);
 glVertex3f(0,1,1);
 glVertex3f(0,1,0);
 glEnd();
 
 //---cuarta cara-----
 glBegin(GL_POLYGON);
 glColor3f(1.0,0.0,1.0);
 glVertex3f(0,1,1);
 glVertex3f(1,1,1);
 glVertex3f(1,1,0);
 glVertex3f(0,1,0);
 glEnd();
 
 //---quinta cara-----
 glBegin(GL_POLYGON);
 glColor3f(1.0,0.0,1.0);
 glVertex3f(0,0,1);
 glVertex3f(1,0,1);
 glVertex3f(1,0,0);
 glVertex3f(0,0,0);
 glEnd();
 
 //---sexta cara-----
 glBegin(GL_POLYGON);
 glColor3f(0.5,0.5,0.5);
 glVertex3f(1,0,1);
 glVertex3f(1,0,0);
 glVertex3f(1,1,0);
 glVertex3f(1,1,1);
 glEnd();
 glPopMatrix();
 glutSwapBuffers();
 }
 
 Y esta la solucion:
 
 1>Compilando...
 1>CPP.cpp
 1>c:\users\ismael\skydrive (2)\estudios\app c++, opengl y unity\opengl\tema 2\demo\demo\cpp.cpp(23) : error C2065: 'angulo' : identificador no declarado
 1>El registro de compilación se guardó en el "file://c:\Users\Ismael\SkyDrive (2)\Estudios\App C++, OPENGL y Unity\OpenGL\Tema 2\DEMO\DEMO\Debug\BuildLog.htm"
 1>DEMO - 1 errores, 0 advertencias
 ========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========
 
 No logro declarar "angulo" sin que me corra otros errores que no entiendo.
 ¿Como puedo hacer que copile correctamente, aunque sea con advertencias.?
 
 Muchas gracias y un saludo :D
- 
				Te falta definir el "angulo", mira que parámetros se le pasan a la llamada a la función glrotatef y define el "angulo", o bien en el cuerpo de la función o bien de manera global y si es integer o short, por ejemplo.
			
- 
				Me podrías especificar algo mas o poner un ejemplo es que soy muy novato. Intente no int, char y nada.
 
 Se que tengo que declarar que angulo hace referencia a glRotatef pero no soy capaz. Intentare averiguar lo que me dijiste en el anterior mensaje.
 
 Muchas gracias por responder :)
- 
				Si, fíjate que la llamada a la función glrotatef se le pasan cuatro parámetros, el primero es el angulo y luego 0, 1 y 0, pues angulo debe ser un dato definido, por ejemplo: 
 int angulo;
 Y tener un valor:
 angulo = 45;
 o lo que sea, pero un dato numérico, también podrias cambiar angulo por el valor y asi no tendrías que definir esa variable, por ejemplo: glrotatef(45, 0, 1, 0).
 Ese dato en la llamada a la función especifica el ángulo de rotación, en grados.
 Espero haberte podido aclarar. Un saludo.
- 
				Probé cambiando la palabra angulo por el grado pero me corre dos errores que son extraños.
 
 //--------dibujar-------------
 void dibujar(void)
 {
 glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();
 gluLookAt(3,2,3,0,0,0,0,1,0);
 glPushMatrix();
 glRotatef(45,0,1,0);
 
 Estos son los errores:
 
 1>------ Operación Generar iniciada: proyecto: DEMO, configuración: Debug Win32 ------
 1>Compilando...
 1>CPP.cpp
 1>Vinculando...
 1>MSVCRTD.lib(crtexe.obj) : error LNK2019: símbolo externo _main sin resolver al que se hace referencia en la función ___tmainCRTStartup
 1>C:\Users\Ismael\SkyDrive (2)\Estudios\App C++, OPENGL y Unity\OpenGL\Tema 2\DEMO\Debug\DEMO.exe : fatal error LNK1120: 1 externos sin resolver
 1>El registro de compilación se guardó en el "file://c:\Users\Ismael\SkyDrive (2)\Estudios\App C++, OPENGL y Unity\OpenGL\Tema 2\DEMO\DEMO\Debug\BuildLog.htm"
 1>DEMO - 2 errores, 0 advertencias
 ========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========
 
 Muchas gracias de nuevo, un saludo :D
- 
				hay una llamada a esta función "___tmainCRTStartup" por lo que veo en el error, que hace una referencia a una librería que no tienes incluida en el proyecto, te falta declarar alguna lib e imagino que es esta "MSVCRTD.lib".
			
- 
				Ya solucione el error gracias a vosotros, Muchas gracias a todos.  :yes: