Unidad 1: Introduccin a Los ambientes de graficacin Ensayo: Practica 1 (lneas y puntos)
Frida Daphne Flores Castaon
Titular de la materia: Noe Ramon Rosales Morales
Lunes 25 de Agosto de 2014
ndice
Introduccin ___________________________________________________________ 1 Que es OpenGL ________________________________________________________ 2 Que permite OpenGL ___________________________________________________ 2 Bibliotecas Relacionadas ____________________________________________________ 2 Primitivas ______________________________________________________________ 2 Especificacin de colores _______________________________________________ 3 Anexos ________________________________________________________________ 3 Conclusin ____________________________________________________________ 6 Bibliografa ____________________________________________________________ 6 1
Introduccin
En este trabajo hablaremos acerca de las bibliotecas de funciones graficas de OpenGL y lo que nos permiten realizar. Comenzaremos plasmando lneas y puntos y despus se intentara experimentar un poco con el cdigo, se mostrara tambin cual es el esqueleto bsico para empezar a graficar por computadora.
2
Que es OpenGL
OpenGL son libreras graficas donde facilitan el interfaz con el hardware grfico, proporciona una biblioteca bsica de funciones para especificar primitivas geomtricas bsicas, transformaciones geomtricas, transformaciones de visualizacin entre otras operaciones. No debemos dejar de lado que es independiente al Hardware y que no incluye la gestin de ventanas, teclado, etc. Que permite OpenGL
Permite principalmente describir la geometra de los objetos a partir de las primitivas bsicas, situar objetos, el clculo del color incluyendo la iluminacin, texturas, en fin. OpenGL nos permite disear grficamente todo lo que nosotros imaginemos por medio de sintaxis bsicas. Bibliotecas Relacionadas Hay en existencia un gran nmero de bibliotecas que se utilizan en operaciones especiales, aparte de la biblioteca bsica de OpenGL. GLUT (OpenGL Utility Toolkit) CLX (OpenGL Extensin to the X Window System) AGL (Apple GL) WGL (Windows a OpenGL) PGL (Presentation Manager to OpenGL) Primitivas
3
Especificacin de colores
Anexos Cdigo fuente de la creacin de una lnea: #include "stdafx.h" #include <GL/glut.h> void init(void) { glClearColor(1.0, 1.0, 1.0, 0.0); //establece el color de la ventana de visualizacin en blanco glMatrixMode(GL_PROJECTION); //establece los parmetros de proyeccin gluOrtho2D(0.0, 200.0, 0.0, 150.0); } void lineSegment(void) { glClear(GL_COLOR_BUFFER_BIT); //borra la ventana de visualizacin glColor3f(1.0, 0.0, 0.0); //establece el color del segmento de lnea en rojo glBegin(GL_LINES); glVertex2i(180, 15);//especifica la geometra del segmento de lnea glVertex2i(10, 145); glEnd(); glFlush(); //procesa todas las subrutinas de OpenGl tan rpidamente como sea posible }
void main(int argc, char** argv) { glutInit(&argc, argv);//inicializa glut glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//establece el modo de visualizacin glutInitWindowPosition(50, 100); //establece la posicin de la esquina superior izquierda de la ventana de visualizacin glutInitWindowSize(400, 300); //establece el ancho y la altura de ventana de visualizacin glutCreateWindow("An Example OpenGl Program"); //crea la ventana de visualizacin init(); //ejecuta el procedimiento de inicializacin glutDisplayFunc(lineSegment); //enva los grficos a la ventana de visualizacin glutMainLoop(); //muestra todo y espera
} 4
Cdigo fuente para realizar puntos: #include "stdafx.h" #include <GL/glut.h>
void init(void) { glClearColor(0.0, 0.0, 0.0, 0.0); //establece el color de la ventana de visualizacin en negro glMatrixMode(GL_PROJECTION); //establece los parmetros de proyeccin gluOrtho2D(0.0, 300.0, 0.0, 300.0); } void lineSegment(void) { glClear(GL_COLOR_BUFFER_BIT); //borra la ventana de visualizacin glColor3f(1.0, 0.0, 0.0); //establece el color del segmento de lnea en rojo glPointSize(5); //tamao del punto glBegin(GL_POINTS); glVertex2i(180, 150);///especifica el vrtice en pantalla glVertex2i(190, 150); glVertex2i(200, 150); glEnd(); glFlush(); //procesa todas las subrutinas de OpenGl tan rpidamente como sea posible }
void main(int argc, char** argv) { glutInit(&argc, argv);//inicializa glut glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//establece el modo de visualizacin glutInitWindowPosition(0,0); //establece la posicin de la esquina superior izquierda de la ventana de visualizacion glutInitWindowSize(300, 300); //establece el ancho y la altura de ventana de visualizacin glutCreateWindow("Ejemplo de puntos en OpenGL"); //crea la ventana de visualizacin init(); //ejecuta el procedimiento de inicializacin glutDisplayFunc(lineSegment); //enva los grficos a la ventana de visualizacin glutMainLoop(); //muestra todo y espera
}
5
Cdigo fuente para dibujar varias lneas: #include "stdafx.h" #include <GL/glut.h> void init(void) { glClearColor(1.0, 0.0, 1.0, 0.0); //establece el color de la ventana de visualizacin en magenta glMatrixMode(GL_PROJECTION); //establece los parmetros de proyeccin gluOrtho2D(0.0, 600.0, 0.0, 600.0); } void lineas(void) { glClear(GL_COLOR_BUFFER_BIT); //borra la ventana de visualizacin glColor3f(1.0, 0.0, 0.0); //establece el color del segmento de lnea en rojo glBegin(GL_LINES); glVertex2i(180, 15);//especifica la geometra del segmento de lnea glVertex2i(10, 145); glVertex2i(200, 20); glVertex2i(15, 100); glEnd(); glFlush(); //procesa todas las subrutinas de OpenGl tan rpidamente como sea posible }
void main(int argc, char** argv) { glutInit(&argc, argv);//inicializa glut glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//establece el modo de visualizacin glutInitWindowPosition(50, 100); //establece la posicin de la esquina superior izquierda de la ventana de visualizacin glutInitWindowSize(600, 600); //establece el ancho y la altura de ventana de visualizacin glutCreateWindow("Ejemplo de un programa con varias lneas"); //crea la ventana de visualizacin init(); //ejecuta el procedimiento de inicializacin glutDisplayFunc(lineas); //enva los grficos a la ventana de visualizacin glutMainLoop(); //muestra todo y espera
6
}
Conclusin Como se pudo observar OpenGL nos facilita por medio de sus bibliotecas disear grficos por computadora, cambiando desde el color de fondo hasta el grfico que se muestra en pantalla. Es fcil utilizarlo si se va usando la lgica de cmo se va plasmando todo el cdigo en ilustraciones. Las sintaxis son fciles de usar, ya que la mayora utiliza la subrutina GLUT y lo que realiza esa sintaxis solo est en ingls. Una vez ms la tecnologa me dejo sorprendida. Bibliografa
Hearn, D. (2006). Grficos por computadora con OpenGL Pearson Educacin S.A., 3era edicin. Madrid.
Mndez, G. Graficacin/ Apuntes OpenGL http://www.integrati.com.mx/gmendez/graficacion/OpenGL_Apuntes.pdf consultado el 23 de Agosto de 2014