Open GL - Ayuda con programa OpenGL C++

 
Vista:
Imágen de perfil de Ismael

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:


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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con programa OpenGL C++

Publicado por CesC++ (1 intervención) el 15/10/2014 07:43:36
Edita la configuracion de soluciones
en el recuadro donde dice DEBUG
selecciona RELEASE

Éste es el que se encuentra en la parte superior
al lado de el boton debug el cual su icono es la punta de una flecha color verde
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar