• Viernes 15 de Noviembre de 2024, 06:27

Autor Tema:  Error en un ejercicio OpenGL  (Leído 4450 veces)

xL3aMS1x

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Error en un ejercicio OpenGL
« en: Jueves 20 de Febrero de 2014, 22:11 »
0
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

chenech

  • Miembro activo
  • **
  • Mensajes: 96
    • Ver Perfil
Re:Error en un ejercicio OpenGL
« Respuesta #1 en: Jueves 20 de Febrero de 2014, 22:47 »
0
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.

xL3aMS1x

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re:Error en un ejercicio OpenGL
« Respuesta #2 en: Viernes 21 de Febrero de 2014, 00:05 »
0
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 :)

chenech

  • Miembro activo
  • **
  • Mensajes: 96
    • Ver Perfil
Re:Error en un ejercicio OpenGL
« Respuesta #3 en: Viernes 21 de Febrero de 2014, 00:30 »
0
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.

xL3aMS1x

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re:Error en un ejercicio OpenGL
« Respuesta #4 en: Viernes 21 de Febrero de 2014, 00:46 »
0
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

chenech

  • Miembro activo
  • **
  • Mensajes: 96
    • Ver Perfil
Re:Error en un ejercicio OpenGL
« Respuesta #5 en: Viernes 21 de Febrero de 2014, 11:19 »
0
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".

xL3aMS1x

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re:Error en un ejercicio OpenGL
« Respuesta #6 en: Lunes 24 de Febrero de 2014, 19:06 »
0
Ya solucione el error gracias a vosotros, Muchas gracias a todos.  :yes: