
Ayuda con programa OpenGL C++
Publicado por Ismael (3 intervenciones) el 10/09/2014 02:55:21
Hola muy buenas a todos/as. Queria pedirles ayuda para resolver unos problemas a la hora de copilar mi este ejercicio.
Uso Visual Studios C++ 2008 Express
Este es el codigo:
Y esto es lo que me corre cuando copilo:
1>------ Operación Generar iniciada: proyecto: Ejercicio 1, configuración: Debug Win32 ------
1>Compilando...
1>Ejercicio 1 cpp.cpp
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(78) : error C2065: 'angulo' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(78) : error C2065: 'angulo' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(81) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(82) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(83) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(87) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(88) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(89) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(93) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(94) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(98) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(99) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(109) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(110) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(114) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(114) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(114) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(115) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(115) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(115) : error C4430: falta el especificador de tipo; se presupone int. Nota: C++ no admite default-int
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(115) : error C2365: 'gluLookAt' : nueva definición; la definición anterior era 'función'
1> c:\program files\microsoft sdks\windows\v6.0a\include\gl\glu.h(88) : vea la declaración de 'gluLookAt'
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(115) : error C2078: hay demasiados inicializadores
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(118) : error C4430: falta el especificador de tipo; se presupone int. Nota: C++ no admite default-int
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(118) : error C2365: 'glutIdleFunc' : nueva definición; la definición anterior era 'función'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\gl\glut.h(573) : vea la declaración de 'glutIdleFunc'
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(118) : error C2440: 'inicializando' : no se puede realizar la conversión de 'void (__cdecl *)(void)' a 'int'
1> No existe un contexto en el que sea posible realizar esta conversión
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(119) : error C4430: falta el especificador de tipo; se presupone int. Nota: C++ no admite default-int
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(119) : error C2365: 'glutPassiveMotionFunc' : nueva definición; la definición anterior era 'función'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\gl\glut.h(570) : vea la declaración de 'glutPassiveMotionFunc'
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(119) : error C2440: 'inicializando' : no se puede realizar la conversión de 'void (__cdecl *)(int,int)' a 'int'
1> No existe un contexto en el que sea posible realizar esta conversión
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(120) : error C4430: falta el especificador de tipo; se presupone int. Nota: C++ no admite default-int
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(120) : error C2365: 'glutSpecialFunc' : nueva definición; la definición anterior era 'función'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\gl\glut.h(577) : vea la declaración de 'glutSpecialFunc'
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(120) : error C2440: 'inicializando' : no se puede realizar la conversión de 'void (__cdecl *)(int,int,int)' a 'int'
1> No existe un contexto en el que sea posible realizar esta conversión
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(121) : error C4430: falta el especificador de tipo; se presupone int. Nota: C++ no admite default-int
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(121) : error C2365: 'glutSpecialUpFunc' : nueva definición; la definición anterior era 'función'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\gl\glut.h(593) : vea la declaración de 'glutSpecialUpFunc'
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(121) : error C2440: 'inicializando' : no se puede realizar la conversión de 'void (__cdecl *)(int,int,int)' a 'int'
1> No existe un contexto en el que sea posible realizar esta conversión
1>El registro de compilación se guardó en el "file://c:\Users\Ismael\Desktop\Ejercicio 1\Ejercicio 1\Debug\BuildLog.htm"
1>Ejercicio 1 - 34 errores, 0 advertencias
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========
La cosa es que no se como solucionar los problemas que me corren, ¿Podriais ayudarme a terminar el codigo?
Muchas gracias de antemano, un saludo.
Uso Visual Studios C++ 2008 Express
Este es el codigo:
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#define _USE_MATH_DEFINES
//---Declaracion de las Librerias----
#include <stdlib.h>
#include <GL/glut.h>
#include <Windows.h>
#include <math.h>
#include <iostream>
//---Declaracion de las Variables----
float pos_cam[]={10.0,4.0,10.0}; //guarda la posición en corrdenadas XYZ
float ori_cam[]={0.0,0.0,0.0}; //guarda los 3 ángulos (roll, ptch y yaw) de orientacion de la cámara
bool teclas_sp[21] = {false}; //estado de las teclas especiales
//---Variables del cursor----
void cursores(int key, int x, int y)
{
switch (key)
{
case GLUT_KEY_UP:
teclas_sp[13]=true;
break;
case GLUT_KEY_RIGHT:
teclas_sp[14]=true;
break;
case GLUT_KEY_LEFT:
teclas_sp[12]=true;
break;
case GLUT_KEY_DOWN:
teclas_sp[15]=true;
break;
case GLUT_KEY_PAGE_UP:
teclas_sp[16]=true;
break;
case GLUT_KEY_PAGE_DOWN:
teclas_sp[17]=true;
break;
}
}
void cursoresup(int key, int x, int y)
{
switch (key)
{
case GLUT_KEY_UP:
teclas_sp[13]=false;
break;
case GLUT_KEY_RIGHT:
teclas_sp[14]=false;
break;
case GLUT_KEY_LEFT:
teclas_sp[12]=false;
break;
case GLUT_KEY_DOWN:
teclas_sp[15]=false;
break;
case GLUT_KEY_PAGE_UP:
teclas_sp[16]=false;
break;
case GLUT_KEY_PAGE_DOWN:
teclas_sp[17]=false;
break;
}
}
void animacion(void)
{
angulo = (angulo+1)%360;
if(teclas_sp[13]==true)
{
pos_cam[0]-=cos(ori[0])*0.5;
pos_cam[2]-=sin(ori[0])*0.5;
pos_cam[1]+=sin(ori[1])*0.5;
}
if(teclas_sp[15]==true)
{
pos_cam[0]+=cos(ori[0])*0.5;
pos_cam[2]+=sin(ori[0])*0.5;
pos_cam[1]-=sin(ori[1])*0.5;
}
if(teclas_sp[12]==true)
{
pos_cam[0]+=cos(ori[0]+M_PI/2)*0.5;
pos_cam[2]+=sin(ori[0]+M_PI/2)*0.5;
}
if(teclas_sp[14]==true)
{
pos_cam[0]-=cos(ori[0]+M_PI/2)*0.5;
pos_cam[2]-=sin(ori[0]+M_PI/2)*0.5;
}
if(teclas_sp[16]==true) pos_cam[1]+=0.1;
if(teclas_sp[17]==true) pos_cam[1]-=0.1;
Sleep(50);
glutPostRedisplay();
}
void Movpas(int x, int y)
{
ori[0]=x*M_PI/180; //transformamos la coordenada X del mouse en un ángulo
ori[1]=y*M_PI/180; //transformamos la coordenada Y del mouse en un ángulo
}
//---Camara----
gluLookAt(pos_cam[0],pos_cam[1],pos_cam[2],pos_cam[0]+cos(ori[0])*cos(ori[1]),pos_cam[1]+sin(ori[1
]),pos_cam[2]+cos(ori[1])*sin(ori[0]),0,1,0);
//---Registro de funciones----
glutIdleFunc(animacion);
glutPassiveMotionFunc(Movpas);
glutSpecialFunc(cursores);
glutSpecialUpFunc(cursoresup);
Y esto es lo que me corre cuando copilo:
1>------ Operación Generar iniciada: proyecto: Ejercicio 1, configuración: Debug Win32 ------
1>Compilando...
1>Ejercicio 1 cpp.cpp
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(78) : error C2065: 'angulo' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(78) : error C2065: 'angulo' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(81) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(82) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(83) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(87) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(88) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(89) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(93) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(94) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(98) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(99) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(109) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(110) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(114) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(114) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(114) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(115) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(115) : error C2065: 'ori' : identificador no declarado
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(115) : error C4430: falta el especificador de tipo; se presupone int. Nota: C++ no admite default-int
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(115) : error C2365: 'gluLookAt' : nueva definición; la definición anterior era 'función'
1> c:\program files\microsoft sdks\windows\v6.0a\include\gl\glu.h(88) : vea la declaración de 'gluLookAt'
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(115) : error C2078: hay demasiados inicializadores
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(118) : error C4430: falta el especificador de tipo; se presupone int. Nota: C++ no admite default-int
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(118) : error C2365: 'glutIdleFunc' : nueva definición; la definición anterior era 'función'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\gl\glut.h(573) : vea la declaración de 'glutIdleFunc'
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(118) : error C2440: 'inicializando' : no se puede realizar la conversión de 'void (__cdecl *)(void)' a 'int'
1> No existe un contexto en el que sea posible realizar esta conversión
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(119) : error C4430: falta el especificador de tipo; se presupone int. Nota: C++ no admite default-int
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(119) : error C2365: 'glutPassiveMotionFunc' : nueva definición; la definición anterior era 'función'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\gl\glut.h(570) : vea la declaración de 'glutPassiveMotionFunc'
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(119) : error C2440: 'inicializando' : no se puede realizar la conversión de 'void (__cdecl *)(int,int)' a 'int'
1> No existe un contexto en el que sea posible realizar esta conversión
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(120) : error C4430: falta el especificador de tipo; se presupone int. Nota: C++ no admite default-int
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(120) : error C2365: 'glutSpecialFunc' : nueva definición; la definición anterior era 'función'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\gl\glut.h(577) : vea la declaración de 'glutSpecialFunc'
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(120) : error C2440: 'inicializando' : no se puede realizar la conversión de 'void (__cdecl *)(int,int,int)' a 'int'
1> No existe un contexto en el que sea posible realizar esta conversión
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(121) : error C4430: falta el especificador de tipo; se presupone int. Nota: C++ no admite default-int
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(121) : error C2365: 'glutSpecialUpFunc' : nueva definición; la definición anterior era 'función'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\gl\glut.h(593) : vea la declaración de 'glutSpecialUpFunc'
1>c:\users\ismael\desktop\ejercicio 1 cpp.cpp(121) : error C2440: 'inicializando' : no se puede realizar la conversión de 'void (__cdecl *)(int,int,int)' a 'int'
1> No existe un contexto en el que sea posible realizar esta conversión
1>El registro de compilación se guardó en el "file://c:\Users\Ismael\Desktop\Ejercicio 1\Ejercicio 1\Debug\BuildLog.htm"
1>Ejercicio 1 - 34 errores, 0 advertencias
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========
La cosa es que no se como solucionar los problemas que me corren, ¿Podriais ayudarme a terminar el codigo?
Muchas gracias de antemano, un saludo.
Valora esta pregunta


0