jueves, 16 de febrero de 2012

Cubo en 2 dimensiones con OpenGL

Código del programa
#include <GL/glut.h>

void myinit(void)
{
      glClearColor(0.0, 1.0, 5.0, 1.0);
      glColor3f(1.0, 0.0, 3.0); 
      glMatrixMode(GL_PROJECTION);
      glLoadIdentity();
      gluOrtho2D(0.0, 500.0, 0.0, 500.0);
      glMatrixMode(GL_MODELVIEW);
}


void display( void )
{

    typedef GLfloat point2[2];     

point2 verticesc[8]={{50.0,50.0},{250.0,50.0},{250.0,250.0},{50.0,250.0},
{150.0,150.0},{350.0,150.0},{350.0,350.0},{150.0,350.0}}; /* Cuadrado aristas */


    glClear(GL_COLOR_BUFFER_BIT);

glBegin(GL_LINES);


    glVertex2fv(verticesc[0]);
glVertex2fv(verticesc[1]);
glVertex2fv(verticesc[1]);
glVertex2fv(verticesc[2]);
glVertex2fv(verticesc[2]);
glVertex2fv(verticesc[3]);
glVertex2fv(verticesc[3]);
glVertex2fv(verticesc[0]);
glVertex2fv(verticesc[0]);
glVertex2fv(verticesc[4]);
glVertex2fv(verticesc[4]);
glVertex2fv(verticesc[5]);
glVertex2fv(verticesc[5]);
glVertex2fv(verticesc[6]);
glVertex2fv(verticesc[6]);
glVertex2fv(verticesc[7]);
glVertex2fv(verticesc[7]);
glVertex2fv(verticesc[3]);
glVertex2fv(verticesc[7]);
glVertex2fv(verticesc[4]);
glVertex2fv(verticesc[6]);
glVertex2fv(verticesc[2]);
glVertex2fv(verticesc[5]);
glVertex2fv(verticesc[1]);
   
glEnd();

     glFlush(); 
 }


void main(int argc, char** argv)
{
    glutInit(&amp;argc,argv);
    glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); 
    glutInitWindowSize(500,500); 
    glutInitWindowPosition(0,0); 
    glutCreateWindow("Cubo 2D");
    glutDisplayFunc(display); 


    myinit();


    glutMainLoop();
}


Corrida del programa






martes, 14 de febrero de 2012

Dimensión Fractal

El concepto de dimensión en los fractales como consecuencia de la recursividad o autosimilitud a cualquier escala que poseen es algo muy complejo. Los fractales están compuestos por elementos cada vez más pequeños de sí mismos que se replican indefinidamente a menor escala, generándose una figura que tiene una superficie finita con un perímetro de longitud infinita y con un número infinito de vértices. En el lenguaje matemático del cálculo, diríamos que esta curva no se puede diferenciar.



Dimensión Minkowski-Bouligand

En la geometría fractal , la dimensión de Minkowski-Bouligand , también conocida como la dimensión de Minkowski o la dimensión de conteo de recuadros , es una manera de determinar la dimensión fractal de un conjunto S en un espacio euclidiano R n , o, más generalmente en un espacio métrico ( X ,  d ).



Dimensión de Hausdorff-Besicovitch

La dimensión de Hausdorff o dimensión de Hausdorff-Besicovitch es una generalización métrica del concepto de dimensión de un espacio topológico, que permite definir una dimensión fraccionaria (no-entera) para un objeto fractal.

 
Dimensión topológica

Normalmente consideramos que los puntos tienen dimensión 0, las líneas 1, las superficies 2 y los volúmenes 3. A esta idea de dimensión se le llama dimensión topológica.


Ejemplos de fractales
  Conjunto de Mandelbrot


Conjunto de julia



Conjunto de koch


Técnicas para generar fractales
Sistema iterativo de funciones.
Un sistema iterativo de funciones (SIF o IFS acrónimo del inglés Iterated function system) es una construcción matemática usada para representar de manera simple ciertos conjuntos fractales que presenten autosimilaridad. Muchos fractales clásicos autosimilares, autoafines y autoconformes pueden representarse como el único conjunto compacto invariante por un sistema iterativo de funciones contractivas.
Alfombra de Sierpinski

Conjunto de cantor




 Triangulo de Siernpinski


Curva de Peano




Curva del dragon



Copo de koch


Esponja de Menger

Fractales de algoritmo de escape
El algoritmo de tiempo de escape es uno de los más antiguos y para muchos programas fractales la única opción disponible. Este algoritmo está basado en el número de iteraciones necesario para determinar si la secuencia iterada por el sistema dinámico tiende a infinito o no.
Fractal de Lyapunov

Fractales aleatorios
Son generados por procesos estocásticos. Por ejemplo: Paisajes de fractal.
Paisajes fractales

Sistema estocástico
Un sistema estocástico es aquel que funciona mayormente por azar. Se trata pues de un algoritmo matemático que trata los procesos cuya evolución es aleatoria y que basa su resultado en probabilidades que cambian con el tiempo. El hecho de que los cálculos de probabilidades varíen con el tiempo es la diferencia con un modelo probabilístico no estocástico.


Referencias:


martes, 7 de febrero de 2012


Fractal
Un fractal es un objeto geométrico que se repite en diferentes escalas. El término fue propuesto por Benoît Mandelbrot en 1975. Los fractales pueden ser generados por un proceso recursivo o iterativo como en la programacion, capaz de producir imágenes  auto-similares independientemente de la escala específica. Los fractales son estructuras geométricas que combinan irregularidad y estructura.
Geometría fractal
Es una rama de la geometría, iniciada por el matemático Mandelbrot, comunmente usada para explicar muchas de las formas de objetos comunes, como nubes, costas, rangos de montañas, ríos y árboles que no pueden ser descritos por la geometría tradicional y estas figuaras se componen por fractales.
5 ejemplos mas conocidos
·         Conjunto de Cantor
·         Conjuntos de Julia
·         Conjunto de Mandelbrot
·         Triángulo de Sierpinski
·         Curva de Koch
Rererencias:
·         http://personales.unican.es/alvareze/estalmat/Fractales2010/page_19.htm
·         http://www.dmae.upm.es/cursofractales/capitulo1/3.html

viernes, 3 de febrero de 2012

Ensayo Unidad 1

1  Introducción a la graficación por  computadora.
1.1 Aplicaciones graficas por computadora.
La graficación por computadora es el campo de la informática visual, donde se utilizan computadoras tanto para generar imágenes visuales sintéticamente como integrar o cambiar la información visual y espacial probada del mundo real. Una grafica nos ayuda al entendimiento de la información. Un ejemplo seria un mapa mental de algún tema, es mas fácil recordar imágenes que significan algo para nosotros que recordar de memoria un texto, aquí aplica el dicho una imagen vale mas que mil palabras.
Es por ello que existen numerosas aplicaciones de la graficación, nos dan perspectiva diferente de la información, en casi cualquier área de estudio y mucho mas en las ciencias básicas como son la química, física y matemáticas. Algunas de los ejemplos de las aplicaciones son:
Interfaces Gráficas de Usuario (GUI: Graphical User Interface). Claramente esta que en el uso de la computadora la graficación ha sido muy importante para la evolución y popularización de ella. Para la mayoría de los usuarios es mas comprensible darle un click a un icono de la computadora que hacer el uso de comandos en el comand prompt, o es mas sencillo dibujar en paint que darle un conjunto de coordenadas a la computadora para hacer  cualquier tipo de dibujo.
Gráficos estadísticos. Si nos dijeran que en chihuahua el numero de personas que habitan son: 123697 en Cuauhtémoc, 256849 en Chihuahua capital y 563124 en Juárez,  seria mas comprensible un porcentaje representado por una grafica de pastel para saber donde esta concentrada la mayoría de la población que hacer una lista ordenada para acomodar los municipios por la cantidad de población de mayor a menor.
Cartografía. Es la ciencia que se encarga del estudio y de la elaboración de los mapas geográficos, territoriales y de diferentes dimensiones lineales y demás. Desde las épocas mas remotas siempre ha existido una necesidad para delimitar los territorios, tanto para aquellos que desean tener control sobre esa porción de tierra como para comerciantes que desean vender su mercancía a otras personas de diferente poblado o abastecerte de materiales que no existen en tu zona geográfica por muchos motivos los mapas son una representación grafica de las mas antiguas y con el uso de la graficación computarizada se puede hacer de forma mas precisa y rápida.
Medicina.En esta área ha ayudado a mejorar los estudios del cuerpo humano para detectar enfermedades que antes no eran posibles de diagnosticar, un ejemplo los ultrasonidos por los cuales se puede saber el estado en el que se encuentra un feto en el vientre de su madre.
Diseño Asistido por Computadora (CAD: Computer-Aided Design). En esta área es donde se colocan muchos de los trabajos para elaboración y manufacturación de productos, si un ingeniero desea realizar una maquinaria lo primordial es hacer un diseño en la computadora para especificar el tamaño y dimensiones de las piezas para posteriormente realizar su diseño con los materiales necesarios.
Multimedios (educativos).En la actualidad la graficación por computadora ha beneficiado a todos los estudiantes, mucha de la información que se imparte en un aula de clase es mas comprensible si se ve gráficamente, como la simulación de cómo funciona un volcán.
Entretenimiento (juegos). Los video juegos son los mas populares para entretenimiento de niños, adolecentes y adultos, conforme pasa mas el tiempo y la forma de graficarlos mejora mayor es el numero de usuarios que pasan horas frente a una pantalla jugándolos y claro esta sin la graficación computarizada, jamás hubiera sido posible.
Arte.El cine es llamado el séptimo arte, en las películas donde la graficación computarizada ha hecho de ellas un éxito para la representación de efectos especiales ya sean que se dibuje por completo una ciudad donde se encuentren los personajes en una historia,  o la representación de artefactos futuristas que aun no existen o simular que llueve en la película, aparentar la mutilación de una pierna o desarrollar completamente la historia en la computadora como se hizo en Toy Story.
1.2 Dispositivos de hardware y software para el despliegue grafico.
El avance de la graficación por computadora se debe s los dispositivos de hardware y software cada vez mas sofisticados, y van de la mano ya que nos e puede avanzar mas en uno que en otro, y tiene que ver mucho también con la evolución de las computadoras.
Uno de los primeros monitores son los monitores CRT  que funcionaban con tubos de vacio. Después con el avance tecnológico en la actualidad se pueden encontrar los monitores LCD los cuales la base de su funcionamiento se encuentra en los cristales líquidos, elementos que se coloca entre dos capas de cristales polarizados, y las pantallas o displays del tipo denominado "plasma" las cuales son planas, livianas, con una capa o substrato superficial que cubre millones de pequeñas celdas o burbujas donde cada burbuja contiene neón y xenón gaseoso a baja presión, y está cubierta con una substancia fosfórica.
En el hardware también tenemos que las tarjetas de video que vienen instaladas en el computador también evolucionaron, en la actualidad algunas de ellas ya cuenta con un microchip y abanicos propios para tener unos gráficos mas potentes en el sentido de la visualización de color y rapidez.
En lo que respecta al software existen muchos dependiendo es uso especifico que se le dará en el ramo de la manufactura existe el AutoCad, Inventor,  en las interfaces de programación de aplicaciones (API) especializadas para facilitar los procesos en todas las etapas de la generación de gráficos por computadora existen : Open GL, Direc3D, RenderMan.

1.3 Formatos gráficos de almacenamiento.
Es bien sabido que si una pagina web contiene muchos gráficos, ya sea por el diseño de la misma o por que contiene muchas fotografías, el navegador de internet tarda mas tiempo en mostrar la pagina, debido a muchos factores por el ancho de banda de la red, por el procesador del computador y por la tarjeta de video del computador. Con el avance de las tecnologías se han creado muchos formatos para guardar los gráficos.
El almacenamiento de los datos que componen una imagen digital en un archivo binario puede realizarse utilizando diferentes formatos gráficos, cada uno de los cuales ofrece diferentes posibilidades con respecto a la resolución de la imagen, la gama de colores, la compatibilidad, la rapidez de carga, etc.
La finalidad última de un formato gráfico es almacenar una imagen buscando un equilibrio adecuado entre calidad, peso final del fichero y compatibilidad entre plataformas. Para ello, cada formato se basa en una o más técnicas diferentes, que pueden incluir codificación especial, métodos de compresión, etc.
Existen dos tipos de formatos: los vectoriales y los de mapa de bits también conocidos como rasterizados. Diferencia entre estos formatos es que los rasterizados se distinguen de los vectoriales en que estos últimos representan una imagen a través del uso de objetos geométricos como curvas y polígonos mientras que los mapas de bits se almacenan como un conjunto de pixeles.

Los mas utilizados en la graficación son aquellos que tienen compresión de imágenes para utilizar menos espacio:
·         BMP: (mapa de bits)  El formato de comprensión más famosos. Este formato se caracteriza por ser una matriz de puntos donde cada punto tiene un color asociado.
·         RLE: Formato para imágenes con compresión se utiliza con el archivo PCX de PaintBrush. Es un formato sencillo en donde cada color consecutivo del mismo tipo es sustituido por dos valores: uno para indicar el número de puntos y otro para indicar el color.
·         GIF: (Graphics Interchange Format) Formato para imágenes con compresión soporta colores de 8 bits, en el mismo archivo se encuentra la paleta de colores.
·         JPEG: (Joint Photographics Expert Group) Formato para imágenes con compresión es un estándar ampliamente utilizado para codificar imágenes. Utiliza el algoritmo de transformada de coseno discreta. Se alcanzan rangos de compresión de 100:1 teniendo su media entre 10:1 y 20:1.
·         PNG: (Portable Network Graphics) es un formato especialmente diseñado para la Web, el cual permite entre otras cosas diversos grados de transparencia en las imágenes.
·         SVG :(Scalable Vector Grpahics) es un formato basado en XML (texto plano) que sirve para representar imágenes en la Web en formato vectorial, se recomienda su uso para sitios Web debido a que en muchos casos el tamaño de las imágenes se ve reducido de manera significativa.
·         MPEG: (Motion Picture Expert Group)Es el estándar más utilizado formatos de video de mayor grado de compresión que las imágenes el cual utiliza el mismo algoritmo que JPEG.

Bibliografía
·         http://es.wikipedia.org/wiki/Cartograf%C3%ADa
·         http://www.slideshare.net/borboletiux/graficacin-por-computadora-1639440
·         http://www.slideshare.net/yesyduc10/graficacion-9188592
·         http://humbertomazuera.freehosting.net/ComputacionGrafica.htm
·         http://es.wikipedia.org/wiki/Gr%C3%A1ficos_3D_por_computadora
·         http://antares.itmorelia.edu.mx/~jcolivar/courses/ag08a/ag_u1.ppt

miércoles, 1 de febrero de 2012

Hardware y Software Gráfico

Con el desarrollo de la graficación se llevaron a cabo la creación de los monitores  y pantallas tipo CRT, tubos de rayos  católicos, los cuales en su origen solo  mostraban líneas programadas desde la  maquina misma.
Dispositivos gráficos de salida:
Monitores CRT y CRT Color
El CRT son tubos de vacio cuyo interior un cátodo de metal calentado el cual tiene 1 cañón en el caso de del CRT a blanco y negro y avienta tres en el caso de la televisión a color rayos uno, verde rojo y uno azul lo manda  hacia un malla metálica recubierta de fosforo, el cual va conectado hacia un yugo el cual produce un campo magnético el cual le da sentido a la imagen horizontal y verticalmente.
Monitores de barrido
Los monitores de barrido tienen la facilidad de poder acomodarse horizontal y verticalmente, a la intensidad de cada uno de sus puntos se le conoce como pixeles en el cual para  representar cada uno se utilizan 24 bits, es decir que para un tamaño de 1024X1024 se necesitan 3mb. Para el barrido vertical se necesita una frecuencia entre 50-80 hz, y para el horizontal cerca de los 40HZ.
Monitores de trazado vectorial
Se trazan los pixeles en segmentos correspondientes a las líneas de imagen que pretende presentar, así esta que da merced del movimiento y son ejecutadas cerca de 30 veces por segundo.
Monitores LCD
 La base de su funcionamiento hay que buscarla en los cristales líquidos, elementos que se coloca entre dos capas de cristales polarizados. Cada píxel de la pantalla podríamos decir que incluye moléculas helicoidales de cristal líquido
Pantalla de Plasma
Las pantallas o displays del tipo denominado "plasma", son planas, livianas, con una capa o substrato superficial que cubre millones de pequeñas celdas o "burbujas". Cada burbuja contiene neón y xenón gaseoso a baja presión, y está cubierta con una substancia fosfórica. Dentro de cada celda, hay tres subceldas que generarán los respectivos colores primarios, rojo, verde y azul (RGB).
Sottware de graficos
Trazado de líneas
Para tener una presentación de algún ser o forma dentro de la graficacion se necesito todo basarse en coordenadas o pixeles. Al desarrollar su programación se tiene que ser especifico en las dimensiones que este abarque, puesto que aun sean operaciones sencillas por así decirlo, la forma de hacer que la maquina entienda lo que se quieres ver es malo. Dependiendo del tipo de líneas o formatos de video es la dificultad con la cual se producen el efecto visual, también teniendo en cuenta algunos errores los cuales se puede tener.
Antialiasing
En el ares del procesamiento digital de señales se le llama los procesos de que permiten minimizar el aliasing cuando se desea representar una señal de alta resolución en un sustrato de más baja resolución. En la mayoría de los casos el Antialiasing consiste en la eliminación de la información de frecuencia demasiada baja, el Antialiasing es un algoritmo que permite evitar los artefactos asociados al aliasing gráfico, como por ejemplo los patrones de Moaré. Para aplicar el antialiasing existen estos metodos:
·         Sobre muestreo o pos filtración
Los objetos se muestrean con una resolución más alta y se despliegan con una resolución menor. Se incrementa el índice de muestreo al considerar la pantalla como si estuviera cubierta con una cuadrícula más delgada que la real. Se calculan las intensidades en las posiciones de la cuadrícula de sub pixel y entonces se combinan los resultados para obtener las intensidades del pixel.
·         Máscaras de peso de píxeles
Consiste en dar más peso a los sub píxeles cercanos al centro del área de un pixel, puesto que se considera que estos sub píxeles son más importantes al determinar la intensidad general de un pixel.
·         Muestreo de área o pre filtración
Determinar la intensidad del pixel al calcular el translape de cada pixel con los objetos que se deben desplegar. Las áreas en que se sobreponen pixeles se obtienen al determinar dónde se intersecan las fronteras del objeto con las fronteras de pixeles individuales.
·         Fases de píxel
Cambiar la posición de despliegue de las áreas de píxeles. Se aplica mediante micro colocación del haz de electrones en relación con la geometría del objeto.

Controladores gráficos y aceleradores en 3d
Si se piensa en la cantidad de bits necesarios para describir la imagen de pixeles la cual se tiene que acceder cada cierto tiempo hay veces que la memoria virtual de la computadora no es suficiente para esto, es por eso que se crearon las tarjetas aceleradores de gráficos, las cuales tienen como objetivo el poder tener más velocidad en tanto al número de pixeles enviados en determinado periodo.
Búfer de pantalla
Cada pixel tiene asignada una cantidad de bits que en buena medida definirán las capacidades del hardware grafico. Ahora bien los sistemas con un mayor número de pixeles disponen de un espacio adicional el cual es posible de almacenar una segunda imagen.
Z Búfer
Este es como la pista que sigue cada polígono de la escena, el cual es capaz de realizar comparaciones sobre que poligonales están mas próximos al observador, permitiendo que no se dibujen los que están ocultos u otros. Este también es el cálculo de mapas de profundidad a partir de una fuente local
Mapeado de texturas
Es una forma muy común de mejora de apariencia de una imagen sintética de una imagen real en la superficie que se quiera presentar.
La forma de hacerlo es hacer corresponder a cada punto del polígono un punto de la textura, este debe de tener un arreglo según su perspectiva
Sombreado
Es la modificación de la iluminación de un polígono, imagen o figura que se desarrolle.
El caso de la no interpolación (sombreado plano) se corresponde a las hipótesis de que la luz está a distancia infinita, el observador también, y que los polígonos pretenden ser realmente polígonos planos, no una aproximación a superficies más complejas.
Antialiasing (en 3D)
La idea es la misma que la vista para líneas en 2D: evitar que las aristas proyectadas presenten "escalones". El efecto de aliasing es incluso peor en animaciones, dado que mínimos cambios de posición pueden determinar efectos de aliasing totalmente distintos, lo que produce la sensación de que "algo se mueve" en los bordes de los objetos.
Un método primitivo consiste en procesar la imagen final ya proyectada y examinar los pixels, suavizando las diferencias entre pixels adyacentes.
 Interpolación Mipmap de texturas
Un problema de las texturas es que, cuando se utiliza una resolución de textura demasiado baja, que resultaría adecuada p.e. para determinada distancia al observador, al ser observada más de cerca, ofrece un aspecto totalmente irreconocible, ya que cada pixel de textura se mapea a mas de un pixel de pantalla.
Para solucionar esto, una posible técnica consiste en almacenar la textura a diferentes resoluciones (por lo general, utilizando múltiplos de dos) y en función de la distancia elegir dos de estas resoluciones e interpolar entre ellas. El tipo de interpolación (bilineal, tri-lineal, quad-lineal) define la calidad de la imagen obtenida.
Transparencia
Anteriormente se ha hablado de 3 componentes de color (RGB). Se puede considerar una cuarta (Alpha) que determina la transparencia del punto.
De esta forma cada vértice representado puede llevar un valor de transparencia asociado, valor que se utiliza de forma que objetos con diferente nivel de transparencia puedan representarse uno delante del otro, permitiendo que ambos sean parcialmente visibles.
Por lo general es conveniente que el programador defina los polígonos transparentes de forma que estén ya ordenados en cuanto a profundidad respecto al observador

Ejemplos de hardware gráficos

Onyx2 Infinite Reality

La Onyx2 IR standard permite manejar 2.62 millones de píxeles, para obtener p.e. una resolución de 1920 x 1200 o dos salidas a 1280 x 1024.
La cantidad mínima de bits por pixel en el búfer de pantalla es de 256 bits, con lo que se puede llegar a utilizar salidas estereoscópicas en cuádruple búfer (dos por canal) con 12 bits para color y 23 de Z Búfer.
 nvidia GeForce2 GTS
Esta tarjeta gráfica, adecuada para ordenadores personales, orientada especialmente al mercado de juegos, plantea una aproximación diferente, al englobar toda su funcionalidad en un solo chip.Su nombre significa GigaTexel Shader (GTS).