• Jueves 28 de Marzo de 2024, 18:31

Autor Tema:  Duda sobre como poner tres polígonos en fila  (Leído 1515 veces)

xL3aMS1x

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Duda sobre como poner tres polígonos en fila
« en: Lunes 24 de Febrero de 2014, 19:10 »
0
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