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: