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

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

Volver arriba

- Temas similares

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