Rapito
03-16-2006, 02:38 PM
i tried o use ur advice and this is what i get:
#include <GL/openglut.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#define NUMBEROF(x) ((sizeof(x))/(sizeof(x[0])))
static int function_index;
static int slices = 16;
static int stacks = 16;
static double irad = .25;
static double orad = 1.0;
static int depth = 4;
bool fullscreen = false;
bool mouseDown = false;
bool frenos = false;
bool offset = true;
float xrot = 0.0f;
float yrot = 0.0f;
float xdiff = 0.0f;
float ydiff = 0.0f;
double frenos_luz = 0.5;
double luz1 = 0.5;
double luz2 = 0.4;
void RAPCarrito()
{
glBegin(GL_QUADS);
/*BASE*/
/*Base del carro [frente]*/
glColor3d (0.2,0,0); glVertex2f (-0.7,0);
glColor3d (0.4,0,0); glVertex2f (-0.7,0.2);
glColor3d (0.7,0,0); glVertex2f (0.7,0.2);
glColor3d (0.9,0,0); glVertex2f (0.7,0);
/*Base del carro [atras]*/
glColor3d (0.2,0,0); glVertex3f (-0.7,0,-0.5);
glColor3d (0.4,0,0); glVertex3f (-0.7,0.2,-0.5);
glColor3d (0.7,0,0); glVertex3f (0.7,0.2,-0.5);
glColor3d (0.9,0,0); glVertex3f (0.7,0,-0.5);
/*Base del carro [tapa-abajo]*/
glColor3d (0,0,0); glVertex3f (0.7,0,-0.5);
glColor3d (0.2,0.2,0.2); glVertex3f (-0.7,0,-0.5);
glColor3d (0.15,0.15,0.15); glVertex3f (-0.7,0,-0.0);
glColor3d (0.2,0.2,0.2); glVertex3f (0.7,0,-0.0);
/*Base del carro [tapa-arriba]*/
glColor3d (0.9,0,0); glVertex3f (0.7,0.2,-0.5);
glColor3d (0.4,0,0); glVertex3f (-0.7,0.2,-0.5);
glColor3d (0.4,0,0); glVertex3f (-0.7,0.2,-0.0);
glColor3d (0.9,0,0); glVertex3f (0.7,0.2,-0.0);
/*Base del carro [tapa-lado-izquierdo]*/
glColor3d (0.2,0,0); glVertex3f (-0.7,0,-0.5);
glColor3d (0.4,0,0); glVertex3f (-0.7,0.2,-0.5);
glColor3d (0.7,0,0); glVertex3f (-0.7,0.2,0);
glColor3d (0.0,0,0); glVertex3f (-0.7,0,0);
/*Base del carro [tapa-lado-derecho]*/
glColor3d (0.4,0,0); glVertex3f (0.7,0,-0.5);
glColor3d (0.7,0,0); glVertex3f (0.7,0.2,-0.5);
glColor3d (0.7,0,0); glVertex3f (0.7,0.2,0);
glColor3d (0.4,0,0); glVertex3f (0.7,0,0);
/*CAPOTA*/
/*Capota del carro [base-frente]*/
glColor3d (0.4,0,0); glVertex3f (-0.5,0.2,0);
glColor3d (0.3,0,0); glVertex3f (-0.3,0.45,0);
glColor3d (0.7,0,0); glVertex3f (0.3,0.45,0);
glColor3d (0.8,0,0); glVertex3f (0.5,0.2,0);
/*Capota del carro [base-atras]*/
glColor3d (0.4,0,0); glVertex3f (-0.5,0.2,-0.5);
glColor3d (0.3,0,0); glVertex3f (-0.3,0.45,-0.5);
glColor3d (0.7,0,0); glVertex3f (0.3,0.45,-0.5);
glColor3d (0.8,0,0); glVertex3f (0.5,0.2,-0.5);
/*Capota del carro [tapa-arriba]*/
glColor3d (0.4,0,0); glVertex3f (-0.3,0.45,0);
glColor3d (0.3,0,0); glVertex3f (-0.3,0.45,-0.5);
glColor3d (0.7,0,0); glVertex3f (0.3,0.45,-0.5);
glColor3d (0.8,0,0); glVertex3f (0.3,0.45,0);
/*Capota del carro [tapa-lados-izquierda]*/
glColor3d (0.5,0,0); glVertex3f (-0.5,0.2,0);
glColor3d (0.5,0,0); glVertex3f (-0.5,0.2,-0.5);
glColor3d (0.3,0,0); glVertex3f (-0.3,0.45,-0.5);
glColor3d (0.3,0,0); glVertex3f (-0.3,0.45,0);
/*Capota del carro [tapa-lados-derecha]*/
glColor3d (0.7,0,0); glVertex3f (0.5,0.2,0);
glColor3d (0.7,0,0); glVertex3f (0.5,0.2,-0.5);
glColor3d (0.8,0,0); glVertex3f (0.3,0.45,-0.5);
glColor3d (0.8,0,0); glVertex3f (0.3,0.45,0);
/*LUCES DE FRENTE*/
/*LADO DERECHO*/
/*luces de frente [lado-derecho-ATRAS]*/
glColor3d (0.5,0.4,0); glVertex3f (0.73,0.15,-0.1);
glColor3d (0.8,0.8,0); glVertex3f (0.73,0.15,-0.2);
glColor3d (0.8,0.8,0); glVertex3f (0.73,0.05,-0.2);
glColor3d (0.8,0.8,0); glVertex3f (0.73,0.05,-0.1);
/*luces de frente [lado-derecho-FRENTE]*/
glColor3d (0.5,0.4,0); glVertex3f (0.725,0.15,-0.1);
glColor3d (0.5,0.4,0); glVertex3f (0.725,0.15,-0.2);
glColor3d (0.5,0.4,0); glVertex3f (0.725,0.05,-0.2);
glColor3d (1.0,1.0,0); glVertex3f (0.725,0.05,-0.1);
/*luces de frente [lado-derecho-tapa-derecho]*/
glColor3d (0.20,0.20,0.20); glVertex3f (0.725,0.15,-0.1);
glColor3d (0.20,0.20,0.20); glVertex3f (0.7,0.15,-0.1);
glColor3d (0.20,0.20,0.20); glVertex3f (0.7,0.05,-0.1);
glColor3d (0.20,0.20,0.20); glVertex3f (0.725,0.05,-0.1);
/*luces de frente [lado-derecho-tapa-izquierdo]*/
glColor3d (0.20,0.20,0.20); glVertex3f (0.725,0.15,-0.2);
glColor3d (0.20,0.20,0.20); glVertex3f (0.7,0.15,-0.2);
glColor3d (0.20,0.20,0.20); glVertex3f (0.7,0.05,-0.2);
glColor3d (0.20,0.20,0.20); glVertex3f (0.725,0.05,-0.2);
/*luces de frente [lado-derecho-tapa-arriba*/
glColor3d (0.20,0.20,0.20); glVertex3f (0.725,0.15,-0.1);
glColor3d (0.20,0.20,0.20); glVertex3f (0.7,0.15,-0.1);
glColor3d (0.20,0.20,0.20); glVertex3f (0.7,0.15,-0.2);
glColor3d (0.20,0.20,0.20); glVertex3f (0.725,0.15,-0.2);
/*luces de frente [lado-derecho-tapa-abajo*/
glColor3d (0.20,0.20,0.20); glVertex3f (0.725,0.05,-0.1);
glColor3d (0.20,0.20,0.20); glVertex3f (0.7,0.05,-0.1);
glColor3d (0.20,0.20,0.20); glVertex3f (0.7,0.05,-0.2);
glColor3d (0.20,0.20,0.20); glVertex3f (0.725,0.05,-0.2);
/*LADO IZQUIERDO*/
/*luces de frente [lado-derecho-ATRAS]*/
glColor3d (0.5,0.4,0); glVertex3f (0.73,0.15,-0.3);
glColor3d (0.8,0.8,0); glVertex3f (0.73,0.15,-0.4);
glColor3d (0.8,0.8,0); glVertex3f (0.73,0.05,-0.4);
glColor3d (0.5,0.4,0); glVertex3f (0.73,0.05,-0.3);
/*luces de frente [lado-derecho-FRENTE]*/
glColor3d (0.5,0.4,0); glVertex3f (0.725,0.15,-0.3);
glColor3d (0.5,0.4,0); glVertex3f (0.725,0.15,-0.4);
glColor3d (0.5,0.4,0); glVertex3f (0.725,0.05,-0.4);
glColor3d (1.0,1.0,0); glVertex3f (0.725,0.05,-0.3);
/*luces de frente [lado-derecho-tapa-derecho]*/
glColor3d (0.20,0.20,0.20); glVertex3f (0.725,0.15,-0.3);
glColor3d (0.20,0.20,0.20); glVertex3f (0.7,0.15,-0.3);
glColor3d (0.20,0.20,0.20); glVertex3f (0.7,0.05,-0.3);
glColor3d (0.20,0.20,0.20); glVertex3f (0.725,0.05,-0.3);
/*luces de frente [lado-derecho-tapa-izquierdo]*/
glColor3d (0.20,0.20,0.20); glVertex3f (0.725,0.15,-0.4);
glColor3d (0.20,0.20,0.20); glVertex3f (0.7,0.15,-0.4);
glColor3d (0.20,0.20,0.20); glVertex3f (0.7,0.05,-0.4);
glColor3d (0.20,0.20,0.20); glVertex3f (0.725,0.05,-0.4);
/*luces de frente [lado-derecho-tapa-arriba*/
glColor3d (0.20,0.20,0.20); glVertex3f (0.725,0.15,-0.3);
glColor3d (0.20,0.20,0.20); glVertex3f (0.7,0.15,-0.3);
glColor3d (0.20,0.20,0.20); glVertex3f (0.7,0.15,-0.4);
glColor3d (0.20,0.20,0.20); glVertex3f (0.725,0.15,-0.4);
/*luces de frente [lado-derecho-tapa-abajo*/
glColor3d (0.20,0.20,0.20); glVertex3f (0.725,0.05,-0.3);
glColor3d (0.20,0.20,0.20); glVertex3f (0.7,0.05,-0.3);
glColor3d (0.20,0.20,0.20); glVertex3f (0.7,0.05,-0.4);
glColor3d (0.20,0.20,0.20); glVertex3f (0.725,0.05,-0.4);
/*LUCES DE ATRAS*/
/*LADO IZQUIERDO*/
/*luces de atras [lado-izquierdo-ATRAS]*/
glColor3d (frenos_luz,0,0); glVertex3f (-0.73,0.15,-0.3);
glColor3d (frenos_luz,0,0); glVertex3f (-0.73,0.15,-0.4);
glColor3d (frenos_luz,0,0); glVertex3f (-0.73,0.05,-0.4);
glColor3d (frenos_luz,0,0); glVertex3f (-0.73,0.05,-0.3);
/*luces de atras [lado-izquierdo-FRENTE]*/
glColor3d (frenos_luz,0,0); glVertex3f (-0.725,0.15,-0.3);
glColor3d (frenos_luz,0,0); glVertex3f (-0.725,0.15,-0.4);
glColor3d (frenos_luz,0,0); glVertex3f (-0.725,0.05,-0.4);
glColor3d (frenos_luz,0,0); glVertex3f (-0.725,0.05,-0.3);
/*luces de atras [lado-izquierdo-tapa-derecho]*/
glColor3d (0.20,0.20,0.20); glVertex3f (-0.725,0.15,-0.3);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.7,0.15,-0.3);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.7,0.05,-0.3);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.725,0.05,-0.3);
/*luces de atras [lado-izquierdo-tapa-izquierdo]*/
glColor3d (0.20,0.20,0.20); glVertex3f (-0.725,0.15,-0.4);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.7,0.15,-0.4);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.7,0.05,-0.4);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.725,0.05,-0.4);
/*luces de atras [lado-izquierdo-tapa-arriba*/
glColor3d (0.20,0.20,0.20); glVertex3f (-0.725,0.15,-0.3);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.7,0.15,-0.3);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.7,0.15,-0.4);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.725,0.15,-0.4);
/*luces de atras [lado-izquierdo-tapa-abajo*/
glColor3d (0.20,0.20,0.20); glVertex3f (-0.725,0.05,-0.3);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.7,0.05,-0.3);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.7,0.05,-0.4);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.725,0.05,-0.4);
/*LADO DERECHO*/
/*luces de atras [lado-derecho-ATRAS]*/
glColor3d (frenos_luz,0,0); glVertex3f (-0.73,0.15,-0.2);
glColor3d (frenos_luz,0,0); glVertex3f (-0.73,0.15,-0.2);
glColor3d (frenos_luz,0,0); glVertex3f (-0.73,0.05,-0.2);
glColor3d (frenos_luz,0,0); glVertex3f (-0.73,0.05,-0.1);
/*luces de atras [lado-derecho-FRENTE]*/
glColor3d (frenos_luz,0,0); glVertex3f (-0.725,0.15,-0.2);
glColor3d (frenos_luz,0,0); glVertex3f (-0.725,0.15,-0.1);
glColor3d (frenos_luz,0,0); glVertex3f (-0.725,0.05,-0.1);
glColor3d (frenos_luz,0,0); glVertex3f (-0.725,0.05,-0.2);
/*luces de atras [lado-derecho-tapa-derecho]*/
glColor3d (0.20,0.20,0.20); glVertex3f (-0.725,0.15,-0.1);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.7,0.15,-0.1);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.7,0.05,-0.1);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.725,0.05,-0.1);
/*luces de atras [lado-derecho-tapa-izquierdo]*/
glColor3d (0.20,0.20,0.20); glVertex3f (-0.725,0.15,-0.2);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.7,0.15,-0.2);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.7,0.05,-0.2);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.725,0.05,-0.2);
/*luces de atras [lado-derecho-tapa-arriba*/
glColor3d (0.20,0.20,0.20); glVertex3f (-0.725,0.15,-0.1);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.7,0.15,-0.1);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.7,0.15,-0.2);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.725,0.15,-0.2);
/*luces de atras [lado-derecho-tapa-abajo*/
glColor3d (0.20,0.20,0.20); glVertex3f (-0.725,0.05,-0.1);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.7,0.05,-0.1);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.7,0.05,-0.2);
glColor3d (0.20,0.20,0.20); glVertex3f (-0.725,0.05,-0.2);
glEnd();
}
void RAPRuedas()
{
/*RUEDAS*/
/*1ra RUEDA*/
glPushMatrix();
glColor3d (0.20,0.20,0.20);
glOrtho(1,1,1,1,1,1);
glTranslated (-0.3,0,0);
glutSolidTorus(0.08,0.05,15,15);
glColor3d (0.80,0.80,0.80);
glTranslated (0,0,0.03);
glutSolidTorus(0.05,0.05,15,15);
glPopMatrix();
/*2da RUEDA*/
glPushMatrix();
glColor3d (0.20,0.20,0.20);
glOrtho(1,1,1,1,1,1);
glTranslated (0.4,0,0);
glutSolidTorus(0.08,0.05,15,15);
glColor3d (0.80,0.80,0.80);
glTranslated (0,0,0.03);
glutSolidTorus(0.05,0.05,15,15);
glPopMatrix();
/*3ra RUEDA*/
glPushMatrix();
glColor3d (0.20,0.20,0.20);
glOrtho(1,1,1,1,1,1);
glTranslated (0.4,0,-0.5);
glutSolidTorus(0.08,0.05,15,15);
glColor3d (0.80,0.80,0.80);
glTranslated (0,0,-0.03);
glutSolidTorus(0.05,0.05,15,15);
glPopMatrix();
/*4ta RUEDA*/
glPushMatrix();
glColor3d (0.20,0.20,0.20);
glOrtho(1,1,1,1,1,1);
glTranslated (-0.3,0,-0.5);
glutSolidTorus(0.08,0.05,15,15);
glColor3d (0.80,0.80,0.80);
glTranslated (0,0,-0.03);
glutSolidTorus(0.05,0.05,15,15);
glPopMatrix();
}
void RAPMufler()
{
/*Mufler*/
/*Inicio de mufler[hacia abajo]*/
glBegin(GL_QUADS);
glColor3f (0.52,0.52,0.52); glVertex3f(-0.2,0,-0.1);
glColor3f (0.52,0.52,0.52); glVertex3f(-0.2,0,-0.2);
glColor3f (0.50,0.50,0.50); glVertex3f(-0.2,-0.06,-0.2);
glColor3f (0.50,0.50,0.50); glVertex3f(-0.2,-0.06,-0.1);
/*Mufler[trompa]*/
glColor3f (0.42,0.42,0.42); glVertex3f(-0.2,-0.06,-0.2);
glColor3f (0.42,0.42,0.42); glVertex3f(-0.75,-0.06,-0.2);
glColor3f (0.30,0.30,0.30); glVertex3f(-0.75,-0.06,-0.1);
glColor3f (0.30,0.30,0.30); glVertex3f(-0.2,-0.06,-0.1);
/*Mufler[trompa-lado-derecho]*/
glColor3f (0.32,0.32,0.32); glVertex3f(-0.2,-0.00,-0.2);
glColor3f (0.32,0.32,0.32); glVertex3f(-0.2,-0.06,-0.2);
glColor3f (0.40,0.40,0.40); glVertex3f(-0.75,-0.06,-0.2);
glColor3f (0.40,0.40,0.40); glVertex3f(-0.75,-0.00,-0.2);
/*Mufler[trompa-lado-izquierdo]*/
glColor3f (0.25,0.25,0.25); glVertex3f(-0.2,-0.00,-0.1);
glColor3f (0.25,0.25,0.25); glVertex3f(-0.2,-0.06,-0.1);
glColor3f (0.40,0.40,0.40); glVertex3f(-0.75,-0.06,-0.1);
glColor3f (0.40,0.40,0.40); glVertex3f(-0.75,-0.00,-0.1);
/*Mufler[final de la trompa-arriba]*/
glColor3f (0.32,0.32,0.32); glVertex3f(-0.2,-0.0,-0.2);
glColor3f (0.32,0.32,0.32); glVertex3f(-0.2,-0.0,-0.1);
glColor3f (0.50,0.50,0.50); glVertex3f(-0.75,-0.0,-0.1);
glColor3f (0.50,0.50,0.50); glVertex3f(-0.75,-0.0,-0.2);
glEnd();
}
void RAPVentanas ()
{
/*VENTANAS*/
/*1ra Ventana*/
glBegin (GL_QUADS);
glColor3d (0,0,0);
glVertex3f (0.4,0.2,0.001);
glVertex3f (-0.0,0.2,0.001);
glVertex3f (-0.0,0.4,0.001);
glVertex3f (0.25,0.4,0.001);
/*2da Ventana*/
glVertex3f (-0.4,0.2,0.001);
glVertex3f (-0.05,0.2,0.001);
glVertex3f (-0.05,0.4,0.001);
glVertex3f (-0.25,0.4,0.001);
/*3ra Ventana*/
glVertex3f (0.4,0.2,-0.51);
glVertex3f (-0.0,0.2,-0.51);
glVertex3f (-0.0,0.4,-0.51);
glVertex3f (0.25,0.4,-0.51);
/*4ta Ventana*/
glVertex3f (-0.4,0.2,-0.51);
glVertex3f (-0.05,0.2,-0.51);
glVertex3f (-0.05,0.4,-0.51);
glVertex3f (-0.25,0.4,-0.51);
/*5ta Ventana*/
glVertex3f (0.35,0.4,-0.45);
glVertex3f (0.35,0.4,-0.051);
glVertex3f (0.5,0.22,-0.051);
glVertex3f (0.5,0.22,-0.45);
/*6ta Ventana*/
glVertex3f (-0.35,0.4,-0.45);
glVertex3f (-0.35,0.4,-0.051);
glVertex3f (-0.475,0.25,-0.051);
glVertex3f (-0.475,0.25,-0.45);
glEnd();
}
void RAPManecillas()
{
/*MANECILLAS*/
/*Manecilla de Acompaņante*/
glBegin(GL_QUADS);
glVertex3f (0,0.1,0.001);
glVertex3f (0.15,0.1,0.001);
glVertex3f (0.15,0.15,0.001);
glVertex3f (0,0.15,0.001);
/*Manecilla de Acompaņante [parte-abrir]*/
glColor3f (0.25,0.25,0.25); glVertex3f (0,0.115,0.025);
glColor3f (0.25,0.25,0.25); glVertex3f (0.15,0.115,0.025);
glColor3f (0.50,0.50,0.50); glVertex3f (0.15,0.15,0.001);
glColor3f (0.50,0.50,0.50); glVertex3f (0,0.15,0.001);
/*Manecilla de Acompaņante*/
glBegin(GL_QUADS);
glColor3d (0,0,0);
glVertex3f (0,0.1,-0.501);
glVertex3f (0.15,0.1,-0.501);
glVertex3f (0.15,0.15,-0.501);
glVertex3f (0,0.15,-0.501);
/*Manecilla de Acompaņante [parte-abrir]*/
glColor3f (0.25,0.25,0.25); glVertex3f (0,0.115,-0.525);
glColor3f (0.25,0.25,0.25); glVertex3f (0.15,0.115,-0.525);
glColor3f (0.50,0.50,0.50); glVertex3f (0.15,0.15,-0.501);
glColor3f (0.50,0.50,0.50); glVertex3f (0,0.15,-0.501);
glEnd();
}
static void shapesPrintf (int row, int col, const char *fmt, ...)
{
static char buf[256];
int viewport[4];
void *font = GLUT_BITMAP_9_BY_15;
va_list args;
va_start(args, fmt);
(void) vsprintf (buf, fmt, args);
va_end(args);
glGetIntegerv(GL_VIEWPORT,viewport);
glPushMatrix();
glLoadIdentity();
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glOrtho(0,viewport[2],0,viewport[3],-1,1);
glRasterPos2i(
glutBitmapWidth(font, ' ') * col,
- glutBitmapHeight(font) * (row+2) + viewport[3]
);
glutBitmapString (font, (unsigned char *) buf);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
}
/* GLUT callback Handlers */
bool init()
{
glClearColor(0.93f, 0.93f, 0.93f, 0.0f);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glClearDepth(1.0f);
return true;
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
gluLookAt(
0.0f, 0.0f, 3.0f,
0.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f);
glRotatef(xrot,0.5f,0.0f,0.0f);
glRotatef(yrot,0.0f,0.5f,0.0f);
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
if (offset)
{
glEnable(GL_POLYGON_OFFSET_FILL);
glPolygonOffset(1.0f, 1.0f);
}
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
glEnable(GL_LIGHTING);
glPushMatrix();
glTranslated(0,0,0.5);
RAPCarrito();
RAPMufler();
RAPVentanas ();
RAPManecillas();
RAPRuedas();
glPopMatrix();
glDisable(GL_LIGHTING);
shapesPrintf (1, 3, "Se prende las luces de freno al f y se apagan a shift+f.");
shapesPrintf (2, 3, "Este programalo hice yo rapito...");
shapesPrintf (3, 3, "...Si, yo Robert", slices, stacks);
if (offset)
glDisable(GL_POLYGON_OFFSET_FILL);
glFlush();
glutSwapBuffers();
}
void resize(int w, int h)
{
const float ar = (float) w / (float) h;
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if( ar > .5 )
glFrustum( -ar, ar, -1.0, 1.0, 2.0, 100.0 );
else
glFrustum( -1.0, 1.0, -1/ar, 1/ar, 2.0, 100.0 );
glMatrixMode(GL_MODELVIEW);
glLoadIdentity() ;
}
void idle()
{
if (!mouseDown)
{
yrot += 1.0f;
}
glutPostRedisplay();
}
void keyboard(unsigned char key, int x, int y)
{
switch(key)
{
case 27 :
exit (0); break;
case 'f' :
if (frenos_luz = 0.5) frenos_luz = 1.0; break;
case 'F' :
if (frenos_luz = 1.0) frenos_luz = 0.5; break;
}
}
void specialKeyboard(int key, int x, int y)
{
if (key == GLUT_KEY_F1)
{
fullscreen = !fullscreen;
if (fullscreen)
glutFullScreen();
else
{
glutReshapeWindow(500, 500);
glutPositionWindow(50, 50);
}
}
}
void mouseMotion(int x, int y)
{
if (mouseDown)
{
yrot = x - xdiff;
xrot = y + ydiff;
glutPostRedisplay();
}
}
void mouse(int button, int state, int x, int y)
{
if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
{
mouseDown = true;
xdiff = x - yrot;
ydiff = -y + xrot;
}
else
mouseDown = false;
}
const GLfloat light_ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f };
const GLfloat light_diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_position[] = { 5.0f, -5.0f, 5.0f, 0.0f };
const GLfloat mat_ambient[] = { 0.7f, 0.7f, 0.7f, 1.0f };
const GLfloat mat_diffuse[] = { 0.8f, 0.8f, 0.8f, 1.0f };
const GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat high_shininess[] = { 100.0f };
/* Program entry point */
int
main(int argc, char *argv[])
{
glutInitWindowSize(640,480);
glutInitWindowPosition(40,40);
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("OpenGLUT Shapes");
glutReshapeFunc(resize);
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMouseFunc(mouse);
glutMotionFunc(mouseMotion);
glutSpecialFunc(specialKeyboard);
glutIdleFunc(idle);
glClearColor(1,1,1,1);
glCullFace(GL_BACK);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
glEnable(GL_LIGHT0);
glEnable(GL_NORMALIZE);
glEnable(GL_COLOR_MATERIAL);
glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess);
glutMainLoop();
return EXIT_SUCCESS;
}
Powered by vBulletin® Version 4.2.0 Copyright © 2013 vBulletin Solutions, Inc. All rights reserved.