C1B 3D Transformaciones
C1B 3D Transformaciones
C1B 3D Transformaciones
#include <windows.h>
#include <GL/glut.h>
#include <stdlib.h>
void Inicializa()
{ glEnable(GL_DEPTH_TEST); }
void Dibuja()
{ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glBegin( GL_LINES);
glVertex3f(-15.0f, 0.0f, 0.0f); glVertex3f(15.0f, 0.0f, 0.0f);
glVertex3f( 0.0f,-15.0f, 0.0f); glVertex3f( 0.0f, 15.0f, 0.0f);
glVertex3f( 0.0f, 0.0f,-15.0f); glVertex3f( 0.0f, 0.0f, 15.0f);
glEnd();
glBegin(GL_QUADS);
glVertex3f(-5.0f, 12.0f, 0.0f);
glVertex3f(-1.0f, 12.0f, 0.0f);
glVertex3f(-1.0f, 8.0f, 0.0f);
glVertex3f(-5.0f, 8.0f, 0.0f);
glEnd();
glBegin(GL_TRIANGLES);
glVertex3f( 1.0f, 8.0f, 0.0f);
glVertex3f( 3.0f, 12.0f, 0.0f);
glVertex3f( 5.0f, 8.0f, 0.0f);
glEnd();
glBegin(GL_QUADS);
glVertex3f(-3.0f, 6.0f, 0.0f);
glVertex3f(-2.0f, 3.0f, 0.0f);
glVertex3f(-3.0f, 0.0f, 0.0f);
glVertex3f(-4.0f, 3.0f, 0.0f);
GRAFICACIÓN.
glEnd();
glBegin(GL_LINE_LOOP);
glVertex3f(3.0f, 6.0f, 0.0f);
glVertex3f(5.0f, 4.0f, 0.0f);
glVertex3f(5.0f, 1.0f, 0.0f);
glVertex3f(3.0f, 0.0f, 0.0f);
glVertex3f(1.0f, 1.0f, 0.0f);
glVertex3f(1.0f, 4.0f, 0.0f);
glEnd();
glutSwapBuffers();
}
Este es el resultado
Para probar como funciona la profundidad tomaremos como ejemplo el primer rectangulo,
glBegin(GL_QUADS);
glVertex3f(-5.0f, 12.0f, 0.0f);
glVertex3f(-1.0f, 12.0f, 0.0f);
glVertex3f(-1.0f, 8.0f, 0.0f);
glVertex3f(-5.0f, 8.0f, 0.0f);
glEnd();
GRAFICACIÓN.
Qué pasa si al estar en la coordenada cero del eje "Z" dibujáramos un cuadro más pequeño de color rojo hacia una coordenada negativa
(atrás)
Este es el resultado
Es un hecho que OpenGL garantiza la ubicación de los objetos en la pantalla, pero ahora como podemos hacer rotar el cuadro rojo?
Nuestro código modificado con el nuevo cuadro rojo se ve así (veremos una parte, la parte central)
glBegin( GL_LINES);
glVertex3f(-15.0f, 0.0f, 0.0f); glVertex3f(15.0f, 0.0f, 0.0f);
glVertex3f( 0.0f,-15.0f, 0.0f); glVertex3f( 0.0f, 15.0f, 0.0f);
glVertex3f( 0.0f, 0.0f,-15.0f); glVertex3f( 0.0f, 0.0f, 15.0f);
glEnd();
glBegin(GL_QUADS);
glVertex3f(-5.0f, 12.0f, 0.0f); glVertex3f(-1.0f, 12.0f, 0.0f);
glVertex3f(-1.0f, 8.0f, 0.0f); glVertex3f(-5.0f, 8.0f, 0.0f);
glEnd();
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: