Logo Studenta

Intr-Graf_4

¡Este material tiene más páginas!

Vista previa del material en texto

Graficación por Computadora
Dr. Roberto Núñez González1
1Departamento de Matemáticas
Ciencias de la Computación
Universidad de Sonora
22 de mayo de 2014
Introducción a la Graficación por Computadora
Graficación por Computadora
Definición
Desarrollo
Aplicación de la Graficación
Elementos de un Sistema Gráfico
Conceptos Varios
Dispositivos de Despliegue
Programa para graficar con Turbo C o GCC/WinBGI
Programa para graficar con libreria XForms (linux)
Programa para graficar en OpenGL/Mesa3D(linux, windows)
Definición
La Graficación por Computadora es uno de los muchos campos de
las Ciencias de la Computación, donde se utilizan computadoras
tanto para generar imágenes visuales sintéticamente como integrar
o cambiar la información visual y espacial recopilada del mundo
real (Wikipedia).
No se le puede asignar un dominio espećıfico, ya que es
multidisciplinaria.
Desarrollo
El desarrollo de la Graficación se debe a dos factores
principalmente:
I Necesidad de los usuarios
I Avances en Hardware y Sofware
Aplicación de la Graficación
La graficación tiene aplicación en varias áreas del conocimiento:
I Interfaces de usuario
I Graficado de información en negocios, ciencia y tecnoloǵıa
I Despliegue de información
I Publicación electrónica
I Diseño Asistido por Computadora (CAD)
I Simulación y animación para visualización cient́ıfica.
I Entretenimiento
I Arte
I Control de procesos
I Cartograf́ıa
Aplicación GC
Figura: Simulación y visualización del proceso de desfibrilización en
SCIRun. http://www.sci.utah.edu/
Aplicación GC
Figura: Visualización de part́ıcula atómicas en 3D, confinadas
magnéticamente en un reactor de fusión simulado.
http://www.sci.utah.edu/
Aplicación GC
Figura: Simulación de la explosión de un contenedor.
http://www.sci.utah.edu/
Aplicación GC
Figura: Volume rendered temperature data from the transient simulation
of the 10-m heptane pool fire. http://www.sci.utah.edu/
Elementos de un Sistema Gráfico
Los elementos de un sistema gráfico son los siguientes:
I Procesador (CPU)
I Procesador Gráfico (GPU)
I Memoria
I Frame-Buffer (VRAM, DRAM)
I Dispositivo Entrada
I Dispositivo Salida (Raster display, Vector display)
Conceptos Varios I
El frame buffer es la memoria de video que es utilizada para
almacenar la imágen desplegada en la pantalla de la computadora.
Un pixel puede tener diferentes definiciones, pero para nuestro
estudio podemos considerarlo como el elemento más pequeño de la
pantalla de la computadora que puede ser iluminado con un cierto
color e intensidad.
Una gráfica raster es una gráfica que se almacena en la memoria
de la computadora usando una malla para grabar la información
(como color e intensidad) de cada pixel que forma la imágen.
La idea detras de las gráficas tipo raster es que una imágen es
dividida en un mosaico regular de pequeñas celdas, llamadas
pixeles, cada uno de los cuales es de un color e intensidad dados.
Conceptos Varios II
Una gráfica vectorial es una gráfica de computadora que es
almacenada en la memoria de la computadora usando fórmulas
matemáticas.
bit-mapped graphics —– raster graphics
voxel —– pixel en 3D
Dispositivos de Despliegue
Los dispositivos de despliegue tipo raster almacenan las primitivas
de despliegue (lineas, caracteres, áreas sólidas, etc) en un memoria
especial llamada buffer de refresco. Estas primitivas que forman
una imágen que va a ser deplegada, se almacenan como una matriz
de pixeles (columnas y renglones de pixeles).
La resolución de pantalla es el número de ṕıxeles que puede ser
mostrado en la pantalla. Viene dada por el producto del ancho por
el alto, medidos ambos en ṕıxeles, con lo que se obtiene una
relación, llamada relación de aspecto. En esta relación de aspecto,
se puede encontrar una variación, esta de acuerdo a la forma del
monitor y de la tarjeta grfica.
Programa para graficar con Turbo C o GCC/WinBGI
#i n c l u d e<s t d i o . h>
#i n c l u d e<s t d l i b . h>
#i n c l u d e<g r a p h i c s . h>
i n t main ( v o i d )
{
i n t g d r i v e r=DETECT, gmode , e r r o r c o d e ;
i n i t g r a p h (& g d r i v e r ,&gmode , ” ” ) ;
e r r o r c o d e=g r a p h r e s u l t ( ) ;
i f ( e r r o r c o d e != grOK )
{
p r i n t f (”ERROR GRAFICO : %s\n ” , g r a p h e r r o r m s g ( e r r o r c o d e ) ) ;
p r i n t f (” P r e s i o n a r a l g u n a t e c l a para s a l i r : ” ) ;
g e t c h ( ) ;
e x i t ( 1 ) ;
}
l i n e ( 0 , 0 , getmaxx ( ) , getmaxy ( ) ) ;
g e t c h ( ) ;
c l o s e g r a p h ( ) ;
r e t u r n ( 0 ) ;
}
Programa para graficar con libreria XForms (linux)
#include<stdio.h>
#include "forms.h"
int main(int argc, char *argv[])
{
int rx,ry; /* resolucion en x e y */
FL_FORM *forma; /* forma y objeto para xforms */
FL_OBJECT *objeto;
/* Inicializamos las xforms: */
fl_initialize(&argc, argv, 0, 0, 0);
/* Especificamos la resolucion (640x480): */
rx=640;
ry=480;
/* Creamos la ventana: */
forma=fl_bgn_form(FL_NO_BOX,rx,ry);
objeto=fl_add_box(FL_FLAT_BOX,0,0,rx,ry,"");
fl_set_object_color(objeto,FL_WHITE,0);
fl_end_form();
fl_set_form_position(forma,300,100);
fl_show_form(forma,FL_PLACE_POSITION,FL_FULLBORDER,"Dibujos");
/* Dibujamos algunas cosas: */
fl_line(10,10,rx-10,10,FL_BLACK);
fl_rect(20,20,40,ry/2,FL_BLUE);
fl_ovalarc(0,30,30,30,20,0,3600,FL_RED);
fl_do_forms();
}
Programa para graficar en OpenGL/Mesa3D(linux,
windows) I
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<GL/glut.h>
// Prototipos de funciones
void disp(void);
void keyb(unsigned char key, int x, int y);
// Identificador de la ventana
static int win;
int main(int argc, char **argv)
{
//////////
// INIT //
//////////
// Inicia GLUT
glutInit(&argc, argv);
// Se especifica el modo de despliegue a tipo RGB y
// con buffer sencillo (no animacion)
glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE);
// Se define el tamano de la ventana
glutInitWindowSize(500,500);
Programa para graficar en OpenGL/Mesa3D(linux,
windows) II
// Se define la posicion donde la ventana se dibujara
glutInitWindowPosition(100,100);
// Si queremos despliegue de pantalla completa:
// glutFullScreen();
// Se crea la ventana, se asigna el nombre y se guarda
// el identificador de la ventana
win = glutCreateWindow("Primera ventana");
//////////////
// CALLBACK //
//////////////
glutDisplayFunc(disp);
glutKeyboardFunc(keyb);
////////////
// OPENGL //
////////////
// SE DEFINE EL COLOR QUE SE UTILIZA PARA LIMPIAR LA PANTALLA
glClearColor(0.0,0.0,0.0,0.0);
// ENTRA EN EL CICLO PRINCIPAL
glutMainLoop();
return 0;
}
Programa para graficar en OpenGL/Mesa3D(linux,
windows) III
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
void disp(void)
{
// LIMPIA LA PANTALLA
glClear(GL_COLOR_BUFFER_BIT);
// DIBUJAR ALGO
glutWireTeapot(0.5);
}
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
void keyb(unsigned char key, int x, int y)
{
printf("Se presiono %c en las coordenadas (%d,%d)\n",key,x,y);
//cout << "Se presiono " << key << " en las coordenadas(" << x << "," << y << ")";
//cout << endl;
if(key == ’q’){
printf("Salir\n");
//cout << "Salir" << endl;
glutDestroyWindow(win);
exit(0);
}
}
	Graficación por Computadora
	Definición
	Desarrollo
	Aplicación de la Graficación
	Elementos de un Sistema Gráfico
	Conceptos Varios
	Dispositivos de Despliegue
	Programa para graficar con Turbo C o GCC/WinBGI
	Programa para graficar con libreria XForms (linux)
	Programa para graficar en OpenGL/Mesa3D(linux, windows)

Continuar navegando