Crear un programa Opengl para mostrar tres polígonos en fila

Ver el tema anterior Ver el tema siguiente Ir abajo

Crear un programa Opengl para mostrar tres polígonos en fila

Mensaje  xL3aMS1x el Mar Feb 25, 2014 8:26 pm

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

xL3aMS1x

Cantidad de envíos : 2
Fecha de inscripción : 20/02/2014

Ver perfil de usuario

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.