Opengl, cubos e movimentos
#include
#include
const int LARGURA = 500; const int ALTURA = 500; const int PX = 10; const int PY = 10;
// Taxa de execucao da funcao de recalculo em milissegundos const int REFRESH = 30;
// Incremento do angulo quando o usuario pressiona as setas esquerda e direita float fatorAngulo = 0.02; float fatorDeslocamento = 0.5;
// Incremento do angulo quando o usuario pressiona as setas esquerda e direita float incrAngulo = 0.0;
// Incremento no eixo XZ quando o usuario pressiona as setas para cima ou para baixo float incrXZ = 0.0;
// Incremento no eixo Y quando o usuario pressiona 'c' ou 'b' float incrY = 0.0;
// Deslocamentos iniciais do ponto de observacao em relacao a camera float dx = 0; float dz = -1;
// Camera float eyeX = 0; float eyeY = 10; float eyeZ = 20;
// Ponto de observacao float obsX = eyeX + dx; float obsY = eyeY; float obsZ = eyeZ + dz;
// Angulo de rotacao float angulo = 0.0;
// Desenha um cubo, face por face, com o centro de massa na origem e lado n void cubo(float n)
{
n = n / 2; glBegin(GL_QUADS); glColor3f(1, 1, 0); glVertex3f( n,-n,-n); glVertex3f(-n,-n,-n); glVertex3f(-n, n,-n); glVertex3f( n, n,-n); glColor3f(1, 0, 0); glVertex3f( n, n, n); glVertex3f(-n, n, n); glVertex3f(-n,-n, n); glVertex3f( n,-n, n); glColor3f(1, 0, 1); glVertex3f( n, n,-n); glVertex3f( n, n, n); glVertex3f( n,-n, n); glVertex3f( n,-n,-n); glColor3f(0, 1, 0); glVertex3f( n, n,-n); glVertex3f(-n, n,-n); glVertex3f(-n, n, n); glVertex3f( n, n, n); glColor3f(0, 1, 1); glVertex3f( n,-n, n); glVertex3f(-n,-n, n); glVertex3f(-n,-n,-n); glVertex3f( n,-n,-n); glColor3f(0, 0, 1); glVertex3f(-n, n, n); glVertex3f(-n,