sábado, 18 de febrero de 2012

Cubo en 2D con OpenGL

Código del programa del Cubo

#include <glut.h>

void display(void)
{        

typedef GLfloat point2[2];

point2 vertice[8] = {
{100.0,100.0},    //v0
{300.0,100.0},    //v1
{300.0,300.0},    //v2
{100.0,300.0},    //v3
{400.0,200.0},    //v4
{400.0,400.0},    //v5
{200.0,400.0},    //v6
{200.0,200.0}};   //v7

        glColor3f(0.0,0.0,1.0);
                gluOrtho2D(0.0, 500.0, 0.0, 500.0);
glClear(GL_COLOR_BUFFER_BIT);

glBegin(GL_LINES);

glVertex2fv(vertice[0]);
glVertex2fv(vertice[1]);

glVertex2fv(vertice[1]);
glVertex2fv(vertice[2]);

glVertex2fv(vertice[2]);
glVertex2fv(vertice[3]);

               glVertex2fv(vertice[3]);
               glVertex2fv(vertice[0]);

glVertex2fv(vertice[1]);
glVertex2fv(vertice[4]);

glVertex2fv(vertice[2]);
glVertex2fv(vertice[5]);

glVertex2fv(vertice[5]);
glVertex2fv(vertice[4]);

glVertex2fv(vertice[5]);
glVertex2fv(vertice[6]);

glVertex2fv(vertice[6]);
glVertex2fv(vertice[3]);

glVertex2fv(vertice[0]);
glVertex2fv(vertice[7]);

glVertex2fv(vertice[4]);
glVertex2fv(vertice[7]);

glVertex2fv(vertice[6]);
glVertex2fv(vertice[7]);

glEnd();
        glFlush();
}

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

        glutMainLoop();      
}
Corrida del Programa del Cubo


jueves, 16 de febrero de 2012

Ejemplos de Fractales

Fractal # 1

Fractal # 2                                                        
Fractal # 3                                              El triangulo de serpienski                  
Fractal # 4                                               la curva de peano                
Fractal # 5
Fractal # 6
Fractal # 7                                                        julia
Fractal # 8
Fractal # 9

Fractal # 10                                                      julia
Fractal # 11                                                            mandelbrot
Fractal # 12                                                 galactic
Fractal # 13                                                  stars


http://openglc2.sourceforge.net/examples.php
http://www.programacioncpp.irandohosting.0lx.net/page.php?opc=fractales

miércoles, 15 de febrero de 2012

FRACTALES


La dimensión fractal


La medición de formas fractales (fronteras, poligonales, etc,) ha obligado a introducir conceptos nuevos que van mas allá de los conceptos geométricos clásicos. Dado que un fractal esta constituido por elementos cada vez mas pequeños, el concepto de longitud no esta claramente definido. Cuando se quiere medir una linea fractal con una unidad, o con un instrumento de medida determinado, siempre habrá objetos mas finos que escaparan a la sensibilidad de la regla o el instrumento utilizado, y también a medida que aumenta la sensibilidad del instrumento aumenta la longitud de la linea.


Dimension de minkowski bouligands


En geometrie fractales, la dimension de minkowski-bouligand, egalement appelee dimension de minkowski oudimension box-countig, este une maniere de determiner la dimension fractales de un ensamble s dans un espace euclidien, plus generalement, un espace metrique(x,d).
Ejemplos de fractales:

-Conjunto de Julia










Fractales Lineales o iterativos

Estos poseen auto similitud perfecta, la cual su dimensión es capaz de formarse por medio de formulas para su auto similitud, estas se crean automáticamente por un algoritmo de repetición que se llama así mismo, es decir sus funciones son re cursivas.

Los ejemplos más básicos son:

-Alfombra de sepiernski


-El triangulo de serpienski


-la curva de peano
-la curva del dragón
-el copo de nieve de koch
-la esponga de menger


Fractales complejos o de escape

Estos son por una auto similitud estadística ya que la dimensión que poseen las figuras son difíciles de calcular, es necesario desarrollarlas con software específicos como Box Couting, y estas van tomando poco a poco el número de iteraciones necesarias para lograrlo en un plano complejo

Los ejemplos más conocidos son:
-Conjunto de mandelbrot




Fractales caóticos

Estos son a base de un auto similitud estadística, poseen más dificultad así que los métodos de medición son más complejos que otros tipos de fractales.

Los ejemplos más básicos son:

-Atractor de lo rentz el cual modela el clima meteorológico

-Atractor de rossier


Fuentes de información

http://personales.unican.es/alvareze/estalmat/Fractales2010/page_30.htm
http://es.wikipedia.org/wiki/Estoc%C3%A1stico
http://www.fractovia.org/art/es/what_es5.shtml
http://dglog.com.ar/blog/fractal_de_mandelbrot_algoritmo_tiempo_escape_python/
http://en.wikipedia.org/wiki/Minkowski%E2%80%93Bouligand_dimension
http://es.wikipedia.org/wiki/Dimensi%C3%B3n_de_Hausdorff-Besicovitch
http://es.wikipedia.org/wiki/Sistema_de_funciones_iteradas





martes, 7 de febrero de 2012

Aspectos matemáticos de la graficación ( Geometría Fractal )

 ¿Que es Fractal?
Un fractal es basicamente un figura geometrica. Los fractales tienen una propiedad que les diferencia de las demas representaciones geometricas y es que son Autosemejantes, es decir que las figuras se repiten una y otra vez de una forma infinita. Otra propiedad es que los fractales tienen un numero infinito de vertices.
Sin embargo, todos los fractales tienen algo en común, ya que todos ellos son el producto de la iteración, repetición, de un proceso geométrico elemental que da lugar a una estructura final de una complicación aparente extraordinaria. Es decir que cada porción del objeto tiene la información necesaria para reproducirlo todo, y la dimensión fractal no necesariamente entera.
¿Que es Geometria Fractal?
 Geometría Fractal es geometría que no distingue entre conjunto matemático y objeto natural. Este nuevo paradigma engulle paradigmas anteriores proyectando un modelo que inagura una nueva zona o región de lo real.
Tambien es una de las cosas más vistosas de la matemática, generando figuras de una simetría compleja y desconcertante para el observador no experto.
imagenes  fractales







viernes, 3 de febrero de 2012

Introducción a la graficación por computadora

Aplicaciones De Las Graficas Por Computadora

Campos de Aplicación
Las graficas por computadora generalmente se usan para creación artística, realización de graficas, dibujo y diseño o combinación de las tres. Sin embargo, antes de que sea posible desarrollar una aplicación, el diseñador del sistema debe ser capaz de comunicarse con los posibles usuarios finales del sistema.
Creación Artística
Un usuario deseara mejorar una presentación con imágenes, deseando desarrollar un acetato de aspecto profesional, una diapositiva o una grafica impresa. Los acetatos son simplemente diapositivas de tamaño grande diseñadas para presentación de un proyector de cuerpos opacos. Una exhibición audiovisual diseñada por computadora puede convertirse para mostrarse en diapositiva (creadas al exponer película a la salida del sistema grafico) o almacenarse en disco magnético y mostrarse en exhibidor de computadora.
Independientemente del tipo de dispositivo de salida empleado, el usuario deseara desarrollar presentaciones sin la ayuda de un artista adiestrado. Por lo general el usuario deseara las siguientes funciones para cubrir ese objetivo.
1.- Objetos básicos.- Normalmente el usuario deseara el acceso a objetos básicos, como por ejemplo: circulo, elipse, cuadrado, rectángulo, línea, línea punteada y triangulo.
2.- Objetos especializados.- Cada campo de especializado y cada institución que aplique ese campo tendrá ciertos objetos únicos especializados, como por ejemplo: símbolos que necesitarían ingenieros eléctricos, mecánicos, industriales, químicos y civiles.
Resistor, Capacitor, Recorrido, Retraso, Válvula
Bomba Soldadura Inspección y operación
3.- Objetos definibles por el usuario.- Según se analizo en, en la sección anterior, el usuario a menudo desarrollara estructuras. Estas representan nuevos símbolos que el usuario empleara repetidamente.

Dispositivos de Hardware y Software para el despliegue gráfico

Un CRT en su interior  un cátodo de  metal por el circuito eléctrico para dar luz  así salga la pantalla recubierta internamente de fosforo. Poco tiempo después estos electrones “excitados” vuelven a su estado original que producen el punto de la imagen visible.
Software de gráficos Para comenzar necesitamos saber cómo representar gráficamente un conjunto de pixeles en forma de líneas, arcos, colores, etc. o incluso en forma de objetos tridimensionales, puntos de vista e iluminación.
El monitor de barrido es más utilizado por CRT el haz de electrones recorren los puntos de dirección longitudinal y línea la velocidad a que se realiza este barrido es como características de monitor, tanto en la forma  de frecuencia de barrido vertical entre 50 y los 80 Hz y la frecuencia de barrido horizontal 40 Hz.
Pantalla LCD Esta pantalla funciona con cristales líquidos, estos elementos se colocan entre dos capas de cristales polarizados. Cada píxel de la pantalla podríamos decir que incluye moléculas helicoidales de cristal líquido, que es un material especial que comparte propiedades de un sólido y líquido.
Pantalla plasma este tipo de pantallas son livianas, planas, con una capa o substrato superficial que cubre millones de pequeñas celdas.
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, rojos, verdes y azules (RGB).
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.
Pantallas de matriz activa formadas por millones de pixeles con transistores y condensadores, también son caras, planas, delgadas, livianas, tienen bajo consumo y no generan rayos X ni tanto calor como los CRT.
El aliasing es el efecto que causa que señales continuas distintas se tornen indistinguibles cuando se muestrean digitalmente. Cuando esto sucede, la señal original no puede ser reconstruida de forma unívoca a partir de la señal digital.
Antialiasing esto reduce el efecto estético desagradable de líneas escalonadas que aparecen en el gráfico con aliasing arriba a la izquierda. El anti-aliasing aplica a menudo en la representación de texto en una pantalla de ordenador para mostrar contornos suaves que emulan mejor la apariencia del texto producido por métodos convencionales de impresión de tinta sobre papel.

Formatos gráficos

Una vez que tenemos nuestra imagen, ya sea capturada en bruto o retocada, lo normal es que la guardemos en un archivo, bien para conservarla y visualizarla en el futuro, bien para incluirla posteriormente en un programa de edición o sencillamente para compartirla con los demás a través del correo electrónico o de la propia web.
Todos los programas, sean del tipo que sean, suelen guardar sus archivos en un formato propio con objeto de poder continuar con la edición del mismo más adelante.
Compresión de archivos
El alto consumo de disco necesario para almacenar imágenes propició que apareciesen diferentes técnicas que trataban de comprimir el volumen del archivo y mitigar así su voracidad de recursos. Los hay de dominio público y otros patentados y, por tanto, propietarios; deberíamos elegir siempre aquellos basados en algoritmos públicos en aras de la compatibilidad con nuestros semejantes, amén de otras razones de carácter ético.
Compresión con pérdida
Se produce cuando los algoritmos usados para reducir las cadenas del código desechan información y, como consecuencia, al descomprimir el archivo se produce una pérdida de información en los datos de la imagen.
Compresión sin pérdida
Evidentemente condensan las cadenas de código sin despreciar ningún tipo de información sobre la imagen, por lo que ésta se regenera intacta al ser descomprimida. Está claro que las ratios de compresión son menores con estos sistemas pero a veces el sacrificio merece la pena.
Formato JPG
JPEG (Joint Photographic Expert Group) / JFIF (JPEG File Interchange Format)
En un formato, como ya hemos avanzado, de los llamados sin pérdida visual muy difundido a partir de que los navegadores web empezaron a soportarlo. Admite imágenes en escala de grises a 8 bits y en color a 24 bits de profundidad.
Sus extensiones son: .jpeg, .jpg, .jif, .jfif
Formato GIF
GIF 89a (Graphics Interchage Format)
Este formato es muy económico y permite las transparencias en determinadas áreas de la imagen, sin embargo sólo admite profundidades entre 1 y 8 bits y, pese a su gran difusión en los comienzos de Internet al ser soportado por los navegadores, su empecinamiento en mantener su algoritmo de compresión bajo licencia propietaria hasta hace bien poco, ha provocado que sea remplazado por el formato .png, un formato abierto y con mejores ratios de compresión.
Formato TIF
TIFF (Tagged Image File Format)
Es uno de los mejores formatos gráficos que existen ya que mantiene totalmente la calidad de la imagen, por lo que se utiliza frecuentemente para almacenar fotos originales digitalizadas, convirtiéndose en un estándar de facto para estos menesteres.
Formato XCF
Existen otros muchos formatos de ficheros de imagen, sin embargo hemos reseñado los más utilizados y los que pueden solucionarnos cualquier necesidad en este sentido. xcf es el formato nativo de Gimp.
Finalmente reseñar que Gimp es capaz de abrir ficheros con extensión .psd nativos de Adobe Photoshop manteniendo las características de edición de este popular programa.

Fuentes de información

jueves, 2 de febrero de 2012

Ensayo de Dispositivos de Hardware y Software para despliegue gráfico

Estos dispositivos son herramientas para el campo de información grafica se puede encontrar diferentes dispositivos de salida. La tecnología la que a un está basada la mayor parte de los monitores de tubo de rayos catódicos (CRT).
Un CRT en su interior  un cátodo de  metal por el circuito eléctrico para dar luz  así salga la pantalla recubierta internamente de fosforo. Poco tiempo después estos electrones “excitados” vuelven a su estado original que producen el punto de la imagen visible.
Software de gráficos Para comenzar necesitamos saber cómo representar gráficamente un conjunto de pixeles en forma de líneas, arcos, colores, etc. o incluso en forma de objetos tridimensionales, puntos de vista e iluminación.
El monitor de barrido es más utilizado por CRT el haz de electrones recorren los puntos de dirección longitudinal y línea la velocidad a que se realiza este barrido es como características de monitor, tanto en la forma  de frecuencia de barrido vertical entre 50 y los 80 Hz y la frecuencia de barrido horizontal 40 Hz.
Pantalla LCD Esta pantalla funciona con cristales líquidos, estos elementos se colocan entre dos capas de cristales polarizados. Cada píxel de la pantalla podríamos decir que incluye moléculas helicoidales de cristal líquido, que es un material especial que comparte propiedades de un sólido y líquido.
Las partes que forman el televisor LCD son :
Reflectores.
Paneles polarizados.
Cristal frontal.
Panel de cristal liquido.
Filtro de color RGB.
Pantalla plasma este tipo de pantallas son livianas, planas, con una capa o substrato superficial que cubre millones de pequeñas celdas.
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, rojos, verdes y azules (RGB).
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.
La Geometry Engine, Raster Manager, MIPmapping, Display Generator y la Onyx2 IR standard. Estas herramientas están encargadas de realizar transformaciones de vértices, iluminación, del mapeo de texturas, efectos de profundidad, transformaciones de vértices, de la iluminación, de recibir datos de puntos y líneas, etc.
Pantallas de matriz activa formadas por millones de pixeles con transistores y condensadores, también son caras, planas, delgadas, livianas, tienen bajo consumo y no generan rayos X ni tanto calor como los CRT.
El aliasing es el efecto que causa que señales continuas distintas se tornen indistinguibles cuando se muestrean digitalmente. Cuando esto sucede, la señal original no puede ser reconstruida de forma unívoca a partir de la señal digital.
En la computación gráfica, el aliasing es el artefacto gráfico característico que hace que en una pantalla ciertas curvas y líneas inclinadas presenten un efecto visual tipo "sierra" o "escalón".
Antialiasing Eesto reduce el efecto estético desagradable de líneas escalonadas que aparecen en el gráfico con aliasing arriba a la izquierda. El anti-aliasing aplica a menudo en la representación de texto en una pantalla de ordenador para mostrar contornos suaves que emulan mejor la apariencia del texto producido por métodos convencionales de impresión de tinta sobre papel.

Glosario de Dispositivos de Hardware y Software para despliegue gráfico

Aliasing es el efecto que causa que señales continuas distintas se tornen indistinguibles cuando se muestrean digitalmente.
Antialiasing es para reducir el efecto de escalonamiento se suele recurrir, como ya se ha comentado, a variaciones en la intensidad de los pixels a lo largo de la línea. La forma de determinar esa intensidad, por lo general, se basa en un sobre-muestreo; es decir, se supone cada pixel formado por una malla de subpixels, y la línea, se supone de grosor finito de un pixel (por oposición a la línea ideal sin anchura).
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.
Bufer de pantalla Como se ha mencionado anteriormente la información de cada imagen se almacena en memoria en forma de matriz de pixels RGB. Esto significa que cada pixel tiene asignada en esa matriz una cantidad de bits que en buena medida definirán las capacidades del hardware gráfico.
Bufer Es fácil encontrarse, sobre todo en revistas sobre juegos, descripciones del Z Bufer como algo que sigue la pista a cada polígono de la escena y es capaz de realizar comparaciones sobre que polígonos están más próximos al observador, permitiendo que no se dibujen los que están ocultos por otros.
Criterio de NyquistEstá demostrado rigurosamente que para evitar el aliasing es necesario asegurarse de que en la señal analógica a muestrear con una frecuencia s, no existen componentes sinusoidales de frecuencia mayor a s/2. Esta condición es llamada el criterio de Nyquist, y es equivalente a decir que la frecuencia de muestreo s debe ser al menos dos veces mayor que el ancho de banda de la señal.
CRT básicamente consiste en un tubo de vacío en cuyo interior un cátodo de metal calentado mediante un filamento por el que circula corriente eléctrica.
Fases de píxel cambiar la posición de despliegue de las áreas de pixels. Se aplica mediante micro colocación del haz de electrones en relación con la geometría del objeto.
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 el respectivo color primario, rojo, verde y azul (RGB).
Monitores de cuarzo líquido (LCD) los monitores de cuarzo líquido utilizan dos placas de cristal que contienen cada una un polarizador de luz girado 90 grados una respecto a la otra. Estas placas prensan el cuarzo líquido (con estructura cristalina, pero con moléculas capaces de fluir como en estado líquido).
OLPC XO-1 es una computadora subportátil prevista para su distribución alrededor del mundo, para facilitarles el acceso al conocimiento y oportunidades de "explorar, experimentar y expresarse" (según el espíritu del construccionismo).
Pantallas de matriz activa formadas por millones de pixels con transistores y condensadores, también son caras, planas, delgadas, livianas, tienen bajo consumo y no generan rayos X ni tanto calor como los CRT.
Polígonos por lo general se definen mediante secuencias de vértices, aunque lo más utilizado con diferencia son simplemente los triángulos. De hecho por lo general cualquier primitiva 3D compleja es descompuesta en triángulos de forma transparente al programador.
Primitivas 3D veamos algunas primitivas típicas, en este caso de OpenGL, con objeto de tener una idea más clara del tipo de programación necesaria para trabajar con librerías gráficas.
Trazado de líneas en general, para obtener la representación como mapa de pixels a partir de una línea en dos dimensiones es necesario seleccionar las posiciones de la pantalla que pertenecen al trazado de la línea.