• Viernes 15 de Noviembre de 2024, 04:31

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - xL3aMS1x

Páginas: [1]
1
OpenGL / Duda sobre como poner tres polígonos en fila
« en: Lunes 24 de Febrero de 2014, 19:10 »
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

2
OpenGL / Error en un ejercicio OpenGL
« en: Jueves 20 de Febrero de 2014, 22:11 »
Hola a todos/as miren tengo un prblema a la hora de copilar un ejercicio.

Es es el codigo:


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


//--------inicializacion------
void init(void)
{
   glClearColor(0.0,0.0,0.0,0.0);
   glEnable(GL_DEPTH_TEST);
   glShadeModel(GL_FLAT);
}

//--------dibujar-------------
void dibujar(void)
{
   glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
   glMatrixMode(GL_MODELVIEW);
   glLoadIdentity();
   gluLookAt(3,2,3,0,0,0,0,1,0);
   glPushMatrix();
   glRotatef(angulo, 0,1,0);

//---primera cara----
    glBegin(GL_POLYGON);
   glColor3f(1.0,0.0,0.0);
   glVertex3f(0,0,1);
   glVertex3f(1,0,1);
   glVertex3f(1,1,1);
   glVertex3f(0,1,1);
   glEnd();

//---segunda cara----
    glBegin(GL_POLYGON);
   glColor3f(0.0,1.0,0.0);
   glVertex3f(1,0,0);
   glVertex3f(0,0,0);
   glVertex3f(0,1,0);
   glVertex3f(1,1,0);
   glEnd();

//---tercera cara----
    glBegin(GL_POLYGON);
   glColor3f(0.0,0.0,1.0);
   glVertex3f(0,0,0);
   glVertex3f(0,0,1);
   glVertex3f(0,1,1);
   glVertex3f(0,1,0);
   glEnd();

//---cuarta cara-----
    glBegin(GL_POLYGON);
   glColor3f(1.0,0.0,1.0);
   glVertex3f(0,1,1);
   glVertex3f(1,1,1);
   glVertex3f(1,1,0);
   glVertex3f(0,1,0);
   glEnd();

//---quinta cara-----
    glBegin(GL_POLYGON);
   glColor3f(1.0,0.0,1.0);
   glVertex3f(0,0,1);
   glVertex3f(1,0,1);
   glVertex3f(1,0,0);
   glVertex3f(0,0,0);
   glEnd();

//---sexta cara-----
    glBegin(GL_POLYGON);
   glColor3f(0.5,0.5,0.5);
   glVertex3f(1,0,1);
   glVertex3f(1,0,0);
   glVertex3f(1,1,0);
   glVertex3f(1,1,1);
   glEnd();
   glPopMatrix();
   glutSwapBuffers();
}

Y esta la solucion:

1>Compilando...
1>CPP.cpp
1>c:\users\ismael\skydrive (2)\estudios\app c++, opengl y unity\opengl\tema 2\demo\demo\cpp.cpp(23) : error C2065: 'angulo' : identificador no declarado
1>El registro de compilación se guardó en el "file://c:\Users\Ismael\SkyDrive (2)\Estudios\App C++, OPENGL y Unity\OpenGL\Tema 2\DEMO\DEMO\Debug\BuildLog.htm"
1>DEMO - 1 errores, 0 advertencias
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========

No logro declarar "angulo" sin que me corra otros errores que no entiendo.
¿Como puedo hacer que copile correctamente, aunque sea con advertencias.?

Muchas gracias y un saludo :D

Páginas: [1]