Computación Gráfica En los últimos treinta años, las técnicas de modelaje en computación gráfica han evolucionado significativamente. Se han utilizado modelos basados en polígonos, superficies, líneas y puntos, sin embargo no han sido suficiente para representar las características tan complejas de los objetos y fenómenos naturales, ya que los modelos matemáticos utilizados a veces son poco manejables o controlables. Por eso se han desarrollado unas técnicas avanzadas de modelaje, con la finalidad de proveer mecanismos concisos, eficientes, flexibles y controlables para especificar y animar los objetos naturales. Desde hace varios años con el gran avance de la informática se han desarrollado en todo el mundo diversos paquetes y programas graficadores que están a la disposición de todos los usuarios. ANTECEDENTES En el año de 1950 Dou Engerlbart comprendió que la tecnología de la informática amplificaba las capacidades mentales, con lo cual podríamos contar con nuevas posibilidades de enfrentar la urgencia y la complejidad de la vida, es por eso que decidió dedicarse por completo a hacer su sueño realidad. Lamentablemente el resto del mundo no estaba preparado para sus proyectos, los cuales eran de tan largo alcance que no concordaban con las ideas prevalecientes en su época y la mayor parte de la comunidad de investigadores ignoró los trabajos de Engelbart. En ese tiempo solo había una docena de computadoras en todo el mundo dedicadas exclusivamente a cálculos militares. Era difícil imaginar que la gente común y corriente usaría las computadoras para aumentar su productividad personal. Entonces, Engelbart estableció el Augmention Research Cenerter para crear modelos funcionales de sus visionarias herramientas. Una de las técnicas empleadas para esto es el denominado Trazador de Rayos que es un algoritmo recursivo de precisión de imagen o iluminación que determina la visibilidad de las superficies lanzando rayos luminosos imaginarios desde el ojo del observador a los objetos en la escena, basándose en las leyes de la óptica geométrica y simulando la iluminación global distribuida por la luz especular teniendo en cuenta la reflexión difusa local. Polyray es un programa de rendering que funciona como trazador de rayos con herramientas de animación, con el que se pueden hacer diversos objetos y superficies en la pantalla por medio de un código específico de comandos y primitivas, y diversas operaciones entre ellos. DEFINICION La computación gráfica es la rama de las ciencias de la computación que se encarga del estudio, diseño y trabajo del despliegue de imágenes en la pantalla de un computador a través de las herramientas proporcionadas por la física, la óptica, la térmica, la geometría, etc. APLICACIONES Está rama de computación es utilizada en: • Ingeniería.- Las actividades de ingeniería pueden dividirse en cinco áreas: diseño, análisis, dibujo, fabricación/construcción/procesamiento y control de calidad. • Ciencias.- Los científicos pueden emplear las gráficas por computadora de muchas maneras. • Arte.- El artista siempre ha podido escoger los medios de expresión adecuados para su talento. Las gráficas por computadora son otro medio del que dispone para ampliar su libertad de expresión. • Educación.- El beneficio más grande que a aporta las computadoras y las gráficas que realizan en un ambiente educativo. En cuanto a capacitación se diseñan sistemas especiales. GRÁFICOS DE ARREGLOS BIDIMENSIONALES DE BITS Una imagen en la pantalla del computador esta formado por píxeles: pequeños puntos blancos, negros o de color dispuestos en filas. Las palabras, los números y las imágenes que vemos no son más que patrones de píxeles creados por software. Con el software de pintura es posible “pintar” píxeles en la pantalla usando un dispositivo apuntador. Un programa de pintura ofrece una paleta de herramientas en pantalla. Hay herramientas de líneas y forma para crear líneas, rectángulos u otras formas en la pantalla. Hay herramientas para rellenar figuras cerradas con colores o patrones. También hay herramientas de edición, como borradores, herramientas de ampliación, de selección y de rotación, que permiten modificar pinturas en pantalla antes de transferirlas al papel. En los gráficos más simples de arreglo bidimensional de bits, un bit de la memoria del computador representa un píxel. Como un bit sólo puede almacenar uno de dos valores, 0 o 1, el píxel únicamente puede mostrarse en uno de dos colores. A este tipo de gráficos de un bit se les conoce como gráficos monocromáticos, porque las imágenes se dibujan en un color sobre un fondo fijo. Los tonos de grises se simulan con una técnica llamada simulación de colores (dithering), una combinación de píxeles blancos y negros para crear la ilusión de un tono de gris. Los programas de graficación monocromática son eficientes, y es fácil aprender a usarlos, pero tienen limitaciones en cuanto a producir imágenes realistas. Los gráficos de escala de grises permiten que un píxel aparezca de color blanco, negro o uno de varios tonos de gris. Con un programa de escala de grises que asigna a ocho bits por píxel es posible obtener hasta 256 tonos de gris en pantalla, más de los que puede distinguir el ojo humano. Hoy en día es corriente que los computadores tengan color de ocho bits. Para el color real se necesitan 24 o 32 bits de memoria por cada pixel (llamado profundidad de píxel) es uno de dos factores tecnológicos que limitan la capacidad del artista en la creación de imágenes realistas con programas para hacer gráficos con arreglos bidimensionales de bits. El otro factor es la definición (la densidad de los píxeles), que se describe en puntos por pulgada o dpi (dots per inch). GRÁFICOS ORIENTADOS A OBJETOS El software de dibujo almacena una imagen, no como colección de puntos, sino como una colección de líneas y formas. Como las imágenes son colecciones de líneas, formas y otros objetos, esta estrategia se conoce como graficación orientada a objetos. Un usuario puede manipular los gráficos orientados a objetos en forma que son difíciles o imposibles con las pinturas de arreglos bidimensionales de bits. Los programas de edición de imágenes por arreglos bidimensionales de bits proporcionan a los artistas y editores de fotografías un control insuperable sobre texturas, sombras y detalles finos. Los programas de ilustración y dibujo orientados a objetos son una mejor opción para crear gráficos, diagramas e ilustraciones con líneas suaves y formas regulares. TRANSFORMACIONES GEOMÉTRICAS BIDIMENSIONALES Aquí estudiamos primero los procedimientos generales para aplicar parámetros de traslación, rotación y escalación para cambiar la posición y el tamaño de los objetos bidimensionales. Traslación.- Se aplica una transformación en un objeto para cambiar su posición a lo largo de la trayectoria de una línea recta de una dirección de coordenadas a otra. Convertimos un punto bidimensional al agregar las distancia de traslación, tx y ty a la posición de coordenadas original (x, y) para mover el punto a una nueva posición (x’, y’) El par de distancia de traslación (tx’ ty’) se llama vector de traslación o vector de cambio. Rotación.- Se aplica una rotación bidimensional en un objeto al cambiar su posición a lo largo de la trayectoria de una circunferencia en el plano de x y. Para generar una rotación especificamos un ángulo de rotación y la posición Xr’ Yr’ del punto de rotación o punto pivote en torno al cual se gira el objeto. Escalación.- Una transformación de escalación altera el tamaño de un objeto. Se puede realizar esta operación para polígonos al multiplicar los valores de coordenadas (x, y) de cada vértice por los factores de escalación sx y sy para producir las coordenadas transformadas (x’, y’). El factor de escalación sx escala objetos en la dirección de x, mientras que el factor de escalación sy lo hace en la dirección de y. Cuando se asignan el mismo valor a sx y sy’ se general una escala uniforme. Y cuando se asignan valores distintos a sx y sy se obtiene un escala diferencial. Podemos encontrar la localización de un objeto escalonado al seleccionar una posición llamada punto fijo, que debe permanecer sin cambio después de la transformación de escalación. ALIASING Y ANTI-ALIASING Está es una de las técnicas más importantes de hacer los gráficos y el texto, fáciles de leer y de satisfacer el ojo humano en la en pantalla es el anti-aliasing. El anti-aliasing es una manera creativa de conseguir que los contornos de la imagen aparezca liso y no con aspecto de cierra. TIPOS DE GRÁFICOS Es importante tener esto en mente para saber que tipo de gráficas puede desplegar nuestro sistema de cómputo. Los archivos de gráficas tienen extensiones específicas. Una extensión de archivo de gráfica define el estándar que fue utilizado para hacer que la computadora pueda leer la imagen. Existen muchos formatos de imágenes o estándares los más comunes son GIF y JPEG. • GIF. Son las siglas de Graphic Interchange Format y es el formato estándar para imágenes que fue desarrollado por Compu Serve para que fuera un método independiente de hardware para el almacenamiento de imágenes. GIF permite gráficas de alta resolución y alta calidad que pueden desplegarse en una gran variedad de sistemas de vídeo. GIF esta dirigido a sistemas de video baratos, dado que solo puede almacenar 8 bits por píxel (256 o menos colores) y casi todas las PC’s no pueden desplegar más de 256 colores en una pasada. GIF es bueno para imágenes con solo unos cuantos colores distintos, como dibujos de líneas y caricaturas simples. • GIF’s Animados. Un GIF Animado es creado utilizando el formato GI F89a Contiene un conjunto de marcos, para una secuencia de imágenes GIF que pueden desplegarse una detrás de otra, o en un ciclo, así que se puede ver las imágenes en movimiento. Un GIF animado tiene la misma extensión que un GIF sin movimiento (.GIF).Lo que hace al GIF animado especial es que no se tiene que instalar otras aplicaciones en el Navegador de Internet para auxiliar en el despliegue. Actualmente la mayoría de los navegadores de Internet permiten el despliegue de GIF’s animados. • GIF’s Transparentes. Un GIF transparente es una imagen GIF con un fondo transparente. Cuando se ve una imagen transparente en el navegador de Internet, se puede observar el fondo del navegador a través del fondo de la imagen, en cualquier color que se elija como el color base del navegador o la imagen que se utilice como fondo. El formato de GIF Transparente permite el navegador de Internet desplegar imágenes de muchas formas, no solo cuadradas o rectangulares que se puedan crear en la mayoría de los editores de gráficos. Un GIF transparente tiene la misma extensión (.GIF) de una imagen en formato GIF normal. • JPEG es un mecanismo estandarizado de compresión de imágenes. JPEG son las siglas para Joint Photographic Experts Group, el nombre original del comité que escribió el estándar. JPEG esta diseñado para comprimir ya sea imágenes a color o en escala de gris de escenas naturales y realistas. Funciona muy bien en fotografías, arte realista y material similar; no tan bien en letreros, caricaturas simples, o dibujos de líneas. JPEG almacena información de color total: 24 bits/píxel (16 millones de colores). De tal manera que con hardware de color completo, las imágenes JPEG lucen mucho mejor que las GIF en el mismo hardware. Los archivos JPEG son más pequeños que los GIF. • BMP Es la extensión de los archivos bitmap, También llamados RASTER GRAPHICS, son la representación consistente en filas y columnas de puntos de una imagen gráfica en una computadora. • CGM Formato de gráfico de vectores Computer Grafhics Metafile • PCX Formato para almacenar imágenes BITMAP • TIFF Tagged Image File Format . Formato muy comúnmente utilizado para transferir imágenes tipo bitmap de una aplicación a otra. SOFTWARE DE MODELO TRIDIMENSIONAL Los diseñadores gráficos pueden crear objetos tridimensionales con herramientas similares a las del software de dibujo convencional. Los ilustradores que usan software tridimensional valoran mucho su flexibilidad. Se puede crear el modelo tridimensional de un objeto, rotarlo, verlo desde varios ángulos y tomar “instantáneas” bidimensionales de las mejores vistas desde varias perspectivas. CAD/CAM: (CAD: Computer-aided design) Consiste en usar los computadores para diseñar productos. Con el software se pueden crear diseños en pantalla de productos tan diversos como chips para la computadora y edificios públicos. En la actualidad el software es mucho más complejo que los bosquejos básicos y los gráficos orientados a objetos, permitiendo a los usuarios elaborar modelos tridimensionales “sólidos “ con características físicas como peso volumen y centro de gravedad. Estos modelos pueden rotarse y observarse desde cualquier ángulo. El diseño asistido por computadora muchas veces se enlaza con la manufactura asistida por computadora (CAM) la combinación de CAD y CAM también se conoce como manufactura integrada por computadora (CIM). En las computadoras de orientación gráfica, casi todas las aplicaciones son WYSIWYG (lo que se ve en pantalla es lo que se obtiene impreso en papel). Sin embargo como lo ha demostrado Doug Engelbart no siempre es necesario ni deseable. Engelbart , Ted Nelson y otros pioneros se centraron en la relación de las ideas y no del formato de la página, para crear un nuevo tipo de documento: un súper documento dinámico, con referencias cruzadas, que aprovecha todas las capacidades interactivas del computador. MÉTODOS DE DESPLIEGUE TRIDIMENSIONAL Cuando modelamos y desplegamos una escena tridimensional, debemos tomar muchas consideraciones aparte de incluir sólo valores para la tercera dimensión. A fin de obtener un despliegue de una escena tridimensional que se modeló en coordenadas mundiales, primero debemos establecer una referencia de coordenadas para la “cámara” o referencia de coordenadas que define la posición y orientación para el plano de la película de la cama. • Proyección paralela.- Es método para generar una vista de un objeto sólido consiste en proyectar puntos en las superficie del objeto a lo largo de líneas paralelas sobre el punto de despliegue. • Proyección de perspectiva.- Generar una vista de una escena tridimensional es proyectar puntos hacia el plano de despliegue a lo largo de trayectorias convergentes. Esto hace que los objetos que están más lejos de la posición de vista se desplieguen más pequeños que aquellos del mismo tamaño que se encuentran más cerca de la posición de vista. • Indicación de intensidad.- Con pocas excepciones, la información de la intensidad es importante para poder identificar con facilidad, para una dirección de vista en particular, cuál es el frente y cual es la parte de atrás de los objetos desplegado. • Hipertexto.- Se le llamó hipertexto por que permitía enlazar la información textual en formas no secuenciales. Un hipertexto contiene enlaces que conducen a los lectores rápidamente a otras partes del documento o a otros documentos relacionados. • Hyper card y los hiperclones.- El hipertexto fue objeto de la atención pública en 1987, cuando apple introdujo hypercard, un programa híbrido, parte base de datos, parte programa de dibujo, parte sistema de gráficos para presentaciones y parte lenguaje de programación. hypercard fue la primera herramienta disponible en forma general para crear documentos del tipo hipertexto. Un documento de hypercard puede contener textos, números gráficos, animación, efectos de sonido, música y hasta segmentos de vídeo. Un documento de hypercard, denominado pila se basa en tarjetas de referencia. Cada pantalla, llamada tarjeta, puede contener gráficos, textos y botones: “puntos vivos” que responden a los clics de ratón. Los botones también se pueden programar para producir música abrir ventanas de diálogo, iniciar otras aplicaciones, reacomodar información efectuar operaciones de menú, enviar mensajes a otros dispositivos de hardware o hacer otras cosas. • Multimedia interactivos.- El uso de una combinación de textos gráficos, animación, vídeo, música y efectos de sonido para comunicarse. a la cantidad de información que puede transmitir un medio por unidad de tiempo se le denomina ancho de banda. un libro que sólo contiene texto es un medio de ancho de banda pequeño, que solo puede proporcionar unos 300 bits de datos por segundo al lector corriente. • Técnicas de modelaje procedurales.- Las técnicas procedurales más conocidas son las siguientes: fractales, figuras geométricas fragmentadas, donde cada una de las partes conserva una relación de similaridad con la figura completa. Los fractales también pueden ser usados en áreas menos abstractas, como el modelamiento de árboles, nubes, montañas, medición de longitud de las líneas costeras, y en general, cualquier hecho que no sea posible de representar mediante variables geométricas clásicas o euclidianas. • Aplicaciones de los fractales.- Los avances tecnológicos que han ocurrido desde que se formularon las primeras ideas de ecuaciones referentes y otras teorías matemáticas complejas, han permitido llevar a la práctica muchos conceptos. Además hay que tomar en cuenta que lo que nosotros vemos de los objetos que queremos modelar, tampoco llega a niveles infinitos. Aun así, la metodología fractal para modelar es bastante útil y muy semejante a la realidad en algunos casos. • Clasificación de fractales.- Similares, tienen partes que son versiones en escala reducida del objeto completo. Se puede utilizar el mismo factor de escala (s) para todas las subpartes o se puede utilizar diferentes factores de escala, llamados también determinísticos. Afines, tienen partes que se forman con diferentes parámetros de escalación sx, sy, sz en distintas direcciones de coordenadas. si la variación es aleatoria, se dicen que son Afines estadísticamente. se han utilizado para modelar relieves y terrenos (superficies de planetas con montañas y cráteres) invariantes, se forman con transformaciones no lineales. Esta clase de fractales incluye los fractales autocuadráticos, tales como el conjunto de mandelbrot, que se forman con funciones cuadráticas, con solución en los complejos. • Dimensión fractal o dimensión fraccional.- La cantidad de variación en el detalle de un objeto. A diferencia de la dimensión euclidiana, la dimensión fractal no es necesariamente un entero. En la geometría euclidiana, una línea tiene dimensión 1, un plano tiene dimensión 2, un sólido tiene dimensión 3. • Gramáticas de formas.- La gramática de formas son un conjunto de reglas de producción que se pueden aplicar en un objeto inicial para agregar niveles de detalles que concuerdan con la forma original. Se pueden aplicar transformaciones para alterar la geometría (forma) del objeto, o es posible aplicar las reglas de transformación para agregar detalles de color de la superficie o la textura a la superficie. • Gramáticas l-system.- La topología de un árbol se puede describir como un tronco, con algunas ramas y hojas unidas. Así un árbol se puede modelar con reglas para ofrecer una conexión particular de las ramas y hojas de las ramificaciones individuales. La descripción geométrica se da, entonces, al situar las estructuras de los objetos en posiciones coordenadas particulares. Estos modelos usan lenguajes formales, gramáticas paralelas llamadas l-system (por lindermayer), para describir algorítmicamente y se parecen mucho a los fractales. En estas gramáticas las reglas de producción se aplican en paralelo para proveer una frase terminal que describe el objeto. En las l-system, cada símbolo terminal representa una parte del objeto o un comando de dirección para ser interpretado por un mecanismo de dibujo tridimensional. • Sistemas de partículas.- Un método para modelar objetos naturales u otros objetos con formas irregulares, que presentan propiedades de “tipo fluido” es el de los sistemas de partículas. Este método es de especial utilidad para describir objetos que cambian con el paso del tiempo por flujo, oleada, rociada o expansión. Se utiliza el proceso aleatorio para generar objetos en alguna región de espacio definida y variar sus parámetros con el paso del tiempo. Las formas de partículas pueden ser esferas, elipsoides, recuadros pequeños u otras formas. • Modelado con base en las características físicas.- Un objeto no rígido, se puede representar con métodos de modelado con base en las características físicas. Un método común para modelar un objeto no rígido es aproximar el objeto con una red de nodos de punto con conexiones flexibles entre nodos. Un tipo sencillo de conexión es un resorte. En lugar de utilizar resortes, también podemos modelar las conexiones entre nodos materiales elásticos, entonces reducimos al mínimo las funciones de energía de tensión para determinar la forma del objeto bajo la influencia de fuerzas externas. Apuntes de www.mitecnologico.com //Realizar una clase línea public class Linea{ private Color color; private float tamano; private String nombre; private Punto origen; private Punto destino; public Linea() { super(); color=Color.RED; tamano=2.0f; } public Linea(Color c,float t) { color=c; tamano=t; } public Punto getOrigen(){return origen;}//nos devuelve el punto origen de la linea public void setOrigen(Punto p){origen=p;}//se la asignamos public Punto getDestino(){return destino;}//Nos devuelve el punto destino de la linea public void setDestino(Punto p){destino=p;}//se la asignamos public String getName(){return nombre;}//nos devuelve el nombre de la linea public void setName(String s){nombre=s;}//se la asignamos public String toString(){return nombre;}//nos devuelve una cadena public void setColor(Color c){color=c;}//asignamos el color de la linea public Color getColor(){return color;}//nos devuelve el color de la linea public void setTamano(float t){tamano=t;}//asignamos el tamaño public float getTamano(){return tamano;}//nos devuelve el tamaño } Y en la clase Punto tengo : public class Punto{ private int x; private int y; private Color color; public Punto(int x,int y){ this.x=x; this.y=y; } public int getX(){return x;} public int getY(){return y;} }