Open GL - Ayuda Opengl para mostrar tres polígonos en fila.

   
Vista:
Imágen de perfil de Ismael

Ayuda Opengl para mostrar tres polígonos en fila.

Publicado por Ismael (3 intervenciones) el 25/02/2014 19:29:17
Hola a todos/as, estoy haciendo un ejercicio y tengo que colocar tres polígonos en fila para poder rotarlos, escalarlos y trasladarlos pero no se como puedo hacer para que se visualicen los tres polígonos en fila de izquierda a derecha.

Este el código que he generado:
Utilizo Visual Basic Express 2008 C++

#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>

void redimensionar(int ancho, int alto)
{
glViewport (0,0, (GLint)ancho, (GLint)alto);
glMatrixMode(GL_PROJECTION);
gluPerspective(35,((float)ancho/alto), 0.1, 1000);
}

//---Formacion del Poligono----
void piramide1(void)
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0,3,4,0,0,0,0,1,0);
glRotatef(45,0,0,1);

//Primera Piramide
glBegin(GL_TRIANGLES);
glColor3f(1.0, 0.0, 0.0);
glVertex3f(0, 0, 1);
glVertex3f(1, 0, 1);
glVertex3f(1, 1, 1);
glEnd();
}

void piramide2(void)
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0,3,4,0,0,0,0,1,0);
glRotatef(50,0,0,1);

//Segunda Piramide
glBegin(GL_TRIANGLES);
glColor3f(0.0, 1.0, 0.0);
glVertex3f(1, 0, 0);
glVertex3f(0, 1, 0);
glVertex3f(0, 0, 0);
glEnd();
glutSwapBuffers();
}

//---Adignacion de las teclas----
void teclado(unsigned char key, int x, int y)
{
if(key==27) exit(0);
}

//---Tamaño de la pantalla de visualizacion----
void main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH);
glutInitWindowSize(640,320);
glutCreateWindow("Intro");

//Registrar las Funciones
glutKeyboardFunc(teclado);
glutDisplayFunc(piramide1);
glutDisplayFunc(piramide2);
glutReshapeFunc(redimensionar);

//Bucle de Eventos Principal
glutMainLoop();
}

He intentado hacer dos funciones glutDisplayFunc() pero solo logro que se visualice una no las dos.

Haber si me podeis ayudar. 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