OpenGL
Práctica con el software Code::Blocks
Practica 1 - Generación de cuadrados con la función GL_QUADS
El siguiente código nos ayudará a desplegar en nuestra pantalla un juego de cuadrados que varían de tonalidad en grises de blanco a negro conforme se acercan al centro, es necesario implementar las librerías necesarias antes de ejecutar el programa:
----------------------------------------------------------------------------------------------------------
#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <GL/gl.h>
#include <GL/glut.h>
#endif
#include <stdlib.h>
void display(void){
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glClear(GL_COLOR_BUFFER_BIT);
//glPointSize(2);
//glLineWidth(2);
//glColor3f(1.0, 0.0, 0.0);
double i=0.9;
float k=1.0;
//Cuadrados
glBegin(GL_QUADS);
for(i;i>0.1;i=i-0.1){
glColor3f(k,k,k);
glVertex2d(i,i);
glVertex2d(i*-1,i);
glVertex2d(i*-1,i*-1);
glVertex2d(i,i*-1);
k=k-0.1;
}
glEnd();
glFlush();
}
int main (int argc, char** argv){
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(600, 600);
glutInitWindowPosition(0, 0);
glutCreateWindow("Matriz");
glutDisplayFunc(display);
glutMainLoop();
}
------------------------------------------------------------------------------------------------------------
Esto producirá una imagen como la siguiente:Practica 2 - Generación de triángulos con función GL_TRIANGLE
De igual manera, se pueden generar una serie de triángulos con el mismo método utilizado para los cuadrados, a continuación se presenta el siguiente ejemplo:
------------------------------------------------------------------------------------------------------------
#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <GL/gl.h>
#include <GL/glut.h>
#endif
#include <stdlib.h>
void display(void){
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glClear(GL_COLOR_BUFFER_BIT);
//glPointSize(2);
//glLineWidth(2);
//glColor3f(1.0, 0.0, 0.0);
double i=0.9;
float k=1.0;
//Cuadrados
glBegin(GL_TRIANGLES);
for(i;i>0.1;i=i-0.1){
glColor3f(k,k,k);
glVertex2d(0,i);
glVertex2d(i,i*-1);
glVertex2d(i*-1,i*-1);
k=k-0.1;
}
glEnd();
glFlush();
}
int main (int argc, char** argv){
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(600, 600);
glutInitWindowPosition(0, 0);
glutCreateWindow("Matriz");
glutDisplayFunc(display);
glutMainLoop();
}
----------------------------------------------------------------------------------------------------------
En este caso, obtendremos una imagen como la que a continuación se muestra:
Sáenz Morales Carlos


No hay comentarios.:
Publicar un comentario