Graficacion-itcj
viernes, 2 de diciembre de 2011
martes, 29 de noviembre de 2011
Resumen de la Unidad 5
3.1 Procesamiento de imágenes
En el procesamiento digital de imágenes se distinguen dos niveles principales de manera general:
-Procesamiento de imágenes a bajo nivel
• Comúnmente se reconoce una secuencia de cuatro para el procesamiento a bajo nivel: adquisición de la imagen, pre-procesamiento, segmentación de la imagen, descripción y clasificación de objetos.
•Muy poco uso de conocimiento respecto al contenido de las imágenes.
-Entendimiento de imágenes a alto nivel
•Existe la capacidad de realizar toma de decisiones respecto al contenido de las imágenes.
El objetivo de este trabajo emplea cada una de las herramientas descritas para el procesamiento de imágens de bajo nivel, su alcance llega hasta el nivel de entendimiento al aplicar la toma de decisiones basada en las características obtenidas a partir de las imágenes.
El procesamiento de imágenes está dado por un conjunto de operaciones llevadas a cabo sobre las imágenes a fin de realizar mediciones cuantitativas para poder describirlas; es decir, extraer ciertas características que permitan mejorar, perfeccionar o detallar la imagen.
Una característica es un atributo usado para hacer decisiones respecto a objetos en la imagen. Algunos atributos son naturales y se definen mediante la apariencia visual de la imagen, en tanto otros, los artificiales, son el resultado de operaciones realizadas a la imagen .
El poder realizar mediciones sobre las imágenes generalmente requiere que sus características estén bien definidas, los bordes bien delimitados y el color y brillo sean uniformes. El tipo de mediciones a realizar para cada característica específica es un factor importante para poder determinar los pasos apropiados para su procesamiento. Los procedimientos aplicados para el procesamiento de imágenes están orientados a las aplicaciones. Lo que puede ser adecuado para una aplicación puede no serlo para otra.
En el procesamiento digital de imágenes, existen diversas aplicaciones y problemas:
-Representación
-Transformación
-Modelado
-Restauración
-Reconstrucción
-Análisis
-Compresión de datos
Para propósitos de este trabajo, son las áreas de restauración y análisis donde se presentan las principales herramientas de uso básico: aplicación de filtros para la eliminación de ruido (restauración), detección de esquinas, bordes, líneas, y puntos (análisis), para la detección de características.
3.2 Filtros para la eliminación de ruido en las imágenes
Se define como ruido cualquier entidad en las imágenes, datos o resultados intermedios que no son interesantes para la computación que se pretende llevar a cabo.
Para realizar el procesamiento en este sistema, se considera como ruido en las imágenes electrocardiográficas un fondo con cuadriculado, así como cualquier otro píxel ajeno a la curva del electrocardiograma que pueda presentarse en la imagen.
Las técnicas de filtraje son transformaciones de la imagen píxel a píxel, que no dependen solamente del nivel de gris de un determinado píxel, sino también del valor de los niveles de gris de los píxeles vecinos en la imagen original. El proceso de filtraje se realiza utilizando matrices denominadas máscaras, que son aplicadas sobre la imagen. La imagen resultante de la aplicación de un filtro es una nueva imagen. Los filtros sirven para suavizar o realzar detalles de la imagen, o inclusive minimizar efectos de ruido.
3.2.1 Filtro gaussiano
Este filtro implementa máscaras que intentan imitar la forma de una gaussiana: G(x,y) = e - (x + y)² / 2σ², donde x, y son las coordenadas de la imagen y sigma una desviación estándar de la probabilidad de distribución asociada.
Este filtro tiene el inconveniente de que, además de remover el ruido, empaña la imagen ocasionando pérdida de los detalles más finos. El filtro gaussiano es comúnmente utilizado en aplicaciones de detección de bordes y análisis de escala espacial.
3.2.2 Filtro mediana (rango de vecindades)
El objetivo del filtro mediana es reducir el empañamiento de los bordes. Este filtro reemplaza el píxel actualmente analizado en la imagen por la mediana del brillo con respecto a los vecinos más cercanos. Este filtro tiene la ventaja de no ser afectado por píxeles individuales ruidosos. La eliminación de ruido obtenida con el filtro mediana es bastante buena, con la ventaja de no empañar demasiado los bordes .
3.2.3 Filtro de suavizado direccional (preservación de bordes)
La eliminación de ruido mediante suavizado distorsiona la información con respecto a los bordes. Para reducir el empañamiento de bordes al realizar el suavizado se puede usar un filtro de promediado direccional que se calcula en varias direcciones según la ecuación: I’ (x,y) = 1/Nθ(k,l)∈EθΣΣ I(x-k, y-l).
3.2.4 Filtro de suavizado conservador
Esta técnica de reducción del nivel de ruido emplea un algoritmo de filtración simple y rápido que sacrifica su poder de eliminación de ruido a cambio de preservar el detalle espacial de la frecuencia en una imagen, removiendo píxeles aislados con un valor muy alto o muy bajo.
3.2.5 Realce de contraste
La técnica de realce de contraste tiene como objetivo mejorar la calidad de las imágenes bajo ciertos criterios subjetivos del ojo humano. Normalmente esta técnica es utilizada como una etapa de pre-procesamiento para sistemas de reconocimiento de patrones.
3.2.6 Filtro paso bajo
El filtro paso bajo es un tipo de filtro de suavizado empleado para remover ruido de alta frecuencia espacial en una imagen digital. Este ruido es generalmente introducido en la imagen durante el proceso de conversión de analógico a digital como un efecto secundario de la conversión física de patrones de energía luminosa a patrones eléctricos.
3.2.7 Filtro paso alto
De manera general, el filtro paso alto opera de la misma manera que el filtro paso bajo, mediante el análisis de los valores de cada píxel y cambiando estos de acuerdo a los valores de los píxeles vecinos. El efecto en este filtro es, sin embargo, el opuesto. En vez de obtener un suavizado de la imagen, el filtro paso alto realza detalles de la imagen.
3.2.8 Filtro SUSAN (Smallest Univalue Segment Assimilating Nucleus)
El algoritmo SUSAN para la eliminación de ruido preserva la estructura de la imagen alisando únicamente sobre los píxeles que se encuentran dentro de la región del píxel analizado (píxel central) tomando un excedente del promedio de los píxeles en la localidad que cae dentro del USAN (Univalue Segment Assimilating Nucleus), siendo este un núcleo circular de píxeles utilizado para el cálculo matemático del nuevo valor del píxel central.
3.3 Operadores para la detección de bordes
La detección de esquinas y líneas se basa en los operadores de detección de bordes, mismos que, mediante el cálculo de primeras y segundas derivadas permiten determinar puntos de principal importancia para poder realizar las mediciones necesarias.
Algunos de los algoritmos de detección de bordes más comunes son los siguientes:
-Técnicas basadas en el gradiente:
•Operador de Roberts
•Operador de Sobel
•Operador de Prewitt
•Operador Isotrópico (u operador de Frei-Chen)
-Operadores basados en cruces por cero:
•Operador de Marr-Hildreth
•Detector de Canny
Los operadores basados en el gradiente asumen que los bordes de una imagen son píxeles con un alto gradiente.
Un píxel de borde se describe mediante dos características importantes:
1. Intensidad del borde, que es igual a la magnitud del gradiente.
2. Dirección del borde, que es igual al ángulo del gradiente.
3.3.1 Operador de Roberts
Es el operador de gradiente más simple. Utiliza las direcciones diagonales para calcular el vector gradiente.
3.3.2 Operador de Sobel
El operador de Sobel es la magnitud del gradiente, calculada mediante: M√ sx² + sy² donde las derivadas parciales son calculadas por:
sx = (a2 + ca3 +a4) – (a0 + ca7 +a6)
sy = (a6 + ca5 + a4) – (a0 + ca1 + a2)
3.3.3 Operador de Prewitt
El operador de Prewitt, al igual que el de Sobel, expande la definición del gradiente en una máscara de 3 X 3 para ser más inmune al ruido, utilizando la misma ecuación que Sobel.
3.3.4 Operador Isotrópico
El operador de Prewitt proporciona una buena detección para bordes verticales y horizontales, mientras que el operador de Sobel es mejor en la detección de bordes diagonales.
4 La animación por computadora
La animación por computadora se puede definir como un formato de presentación de información digital en el movimiento atreves de una secuencia de imágenes o cuadros creada por la computadora, se utilice principalmente en video juegos películas.
Es la técnica que consiste en crear imágenes en movimiento mediante el uso de ordenadores o computadoras. Cada vez más los gráficos creados son en 3D, aunque los gráficos en 2D todavía se siguen usando ampliamente para conexiones lentas y aplicaciones en tiempo real que necesitan renderizar rápido. Algunas veces el objetivo de la animación es la computación en sí misma, otras puede ser otro medio, como una película. Los diseños se elaboran con la ayuda de programas de diseño, modelado y por último renderizado.
4.1 Características de la animación 3D
Una característica importante de la animación por computadora es que nos permite crear escenas realmente tridimensionales. Esto quiere decir que a diferencia de la animación dibujada a mano, en una escena animada por computadora es posible cambiar el ángulo de la cámara y con esto ver otra parte de la escena.
Hay tres frases que componen una acción: la anticipación de la acción, la acción en si y la reacción, para que una animación se vea realista, es necesario que el tiempo empleado en cada parte de esa acción sea el indicado. También se debe de mantener el flujo y la continuidad entre las acciones y esto se lograra traslapando un poco cada parte de la acción.
4.2 Animaciones en el cine
El cine de imagen real registra imágenes reales en movimiento continuo, descomponiéndolo en un número discreto de imágenes por segundo. En el cine de animación no existe movimiento real que registrar, sino que se producen las imágenes una por una mediante dibujos, modelos, objetos y otras múltiples técnicas, de forma que, al proyectarse consecutivamente, se produzca la ilusión de movimiento. Es decir, que mientras en el cine de imagen real se analiza y descompone un movimiento real, en el cine de animación se construye un movimiento inexistente en la realidad.
4.3 Tecnicas de animación
4.3.1 Animacion basada en cuadros
Es la más utilizada. Para hacer una secuencia las imágenes se van filmando cuadro por cuadro y luego estos se unen para formar la animación. Es posible formar bibliotecas de movimientos de cada parte del cuerpo de la animación para de esta forma combinarlas y hacer animaciones diferentes.
4.3.2 Animacion basada en sprites
Se refiere a animación basada en objetos de fondo estático, es decir, lo que cambia son los personajes. Esta técnica es aplicada en video juegos.
4.3.3 Key Framming
Se refiere a establecer posiciones en puntos específicos de tiempo en una animación y la parte intermedia la obtiene la computadora por medio de interpolación matemática. Es necesario hacer un key frame para cada control en cada nivel de la jerarquía del modelo.
4.3.4 Rotoscopiado
Se obtiene la posición y el ángulo de los puntos clave de la imagen real y se trata de hacer converger los modelos en computadora con ellos.
4.3.5 Motion Control
La técnica de Motion control es muy utilizada actualmente, sobre todo en sets virtuales y en el cine. consiste en obtener posiciones clave de manera automática a partir de un actor por medio de dispositivos que se conectan en su cuerpo.
4.3.6 Wavelets
Esta técnica permite que en una sola imagen se compriman una gran cantidad de datos para que al acercarse a ella, se vayan viendo los detalles.
4.3.7 Técnicas de Pixar
Esta etapa consiste en desarrollar (crear el guión de la historia), preproducción (se direccionan
los retos técnicos), producción (creación de la película) y post producción (pulir los últimos detalles).
5 Visión por computadora
Hay varias razones por las que debemos estar interesados en la visión computacional o visión artificial, pero los dos siguientes aspectos nos permitirán observar las distintas direcciones en las cuales se puede ver el tema:
<!--[if !supportLists]-->a) <!--[endif]-->Todas las formas de vida inteligente poseen la capacidad de obrar recíprocamente y de manipular su ambiente de una manera coherente y estable. Esta interacción es facilitada por la continua intervención inteligente entre la percepción y el control del movimiento (es decir acción); la percepción visual es de fundamental importancia para la vida inteligente.
<!--[if !supportLists]-->b) <!--[endif]-->Más fabricantes están preocupados por la integridad cosmética de sus productos; los clientes comparan absolutamente a menudo la calidad del aspecto con calidad funcional. Así pues, para asegurar la acertada comercialización a largo plazo de un artículo, es altamente deseable comparar su aspecto visual antes de ser empaquetado y enviado. Asimismo, es deseable que el proceso de la inspección esté automatizado y efectuado sin la intervención humana.
Estas dos motivaciones para el estudio de la percepción caracterizan dos posibles razones del interés para el procesamiento, análisis, e interpretación de imágenes visuales: desde la filosófica y quizás esotérica inmediata y pragmática. Y todo el argumento entre estas dos razones presentes, una de estas con una amplia variedad de espectros en el interés comercial, dificultad y, por supuesto, del éxito.
La experiencia en el mundo en que vivimos esta cubierta por una variedad sin fin de objetos, animados e inanimados. Así pues, si la visión es un medio para un fin – conocer el mundo observándolo – la visión artificial es exactamente lo mismo salvo que el medio por el cual se adquiere el conocimiento ahora es un instrumento de cómputo más bien que el cerebro de alguna ser vivo. Sin duda, esto es una definición muy amplia. Pero el tema de la visión artificial es extenso: los asuntos tales como la restauración de imágenes, mejoramiento de imagen, inspección visual automatizada, visión robótica, escenas tridimensionales, y percepción y cognición visual todas forman parte del término “Visión Artificial”.
La visión artificial incluye muchas técnicas que son útiles para si misma, Ej., el procesamiento de imágenes (que se refiere a la transformación, codificación, y transmisión de las imágenes) y los patrones, de las cuales los patrones visuales son pero solo una instancia). Más significativamente, sin embargo, la visión artificial incluye técnicas para la descripción útil de la forma y del volumen, para modelos geométricos, y para el llamado proceso cognoscitivo. Así, aunque la visión artificial se refiere ciertamente al procesamiento de imágenes, estas imágenes son solamente la materia prima de una ciencia mucho más amplia, la misma que se esfuerza en última instancia para emular las capacidades perceptivas del hombre y, quizás, para verter una luz sobre la manera por la cual él logra su interacción adaptativa y robusta con su ambiente.
jueves, 17 de noviembre de 2011
Tecnicas de sombreado clasicas y avanzadas
Clasicas: Iluminacion local
Calculos de iluminación por vértices
Para poder aplicar iluminación necesitamos asociar a cada vértice de nuestro objeto un vector normal asociado. Cuando tenemos la normal calculada tenemos que normalizarla, o sea, dividir ese vector por su propio modulo para que sea unitario, pero también podemos hacer que se encargue la OpengGl activando la normalización,
glEnable GL_NORMALIZE
o desactivarla con,
glDisable GL_NORMALIZE
o desactivarla con,
glDisable GL_NORMALIZE
el usar GL_NORMALIZE dependerá de nuestra aplicación ya que forzando a que sea OpenGl que las utilice se ralentiza ya que le estamos hacer mas cálculos de los que debe.
Para definir las normales en opengl utilizaremos la función glNormal3f(X,Y,Z) por ejemplo para definir una cara con 4 vértices la definiremos de la siguiente manera
GlBegin GL_QUADS
glNormal3f nX,nY,nZ
glvertex3f x,y,z
glvertex3f x,y,z
glvertex3f x,y,z
glvertex3f x,y,z
glEnd
glNormal3f nX,nY,nZ
glvertex3f x,y,z
glvertex3f x,y,z
glvertex3f x,y,z
glvertex3f x,y,z
glEnd
Es decir, cada vez que queremos definir una normal a un vértice usamos glNormal y el vértice/s que siguen se asocian a esta normal.
La luz de tipo SMOOTH el polígono que definamos tendrá un color definido par cada vértice, asociando las normales a los vértices OpenGL puede hacer los cálculos de los colores a cada uno del vértice y después hace una interpolación de colores con este tipo de luz se acerca bastante al realismo pero a un la podemos mejorar.
Posterior relleno de triangulos
Rellenado de los triángulos (rastering). Para ello se realizan varias fases de procesamiento por Pixel. Comprobar si cada nuevo pixel es visible o no (comprobación de profundidad).
Interpolación lineal del color para el nuevo pixel (método de Gouraud).
Si existe una textura definida o transparencia, efectuar la modificación de color correspondiente.
Se trata de la última fase, en ocasiones la más costosa, del proceso, por lo que es la primera que se suele integrar en el hardware gráfico. En esta etapa se trata de asignar colores a los pixels correspondientes al interior de cada triángulo proyectado que cae dentro del área de visualización. Los colores asignados deben calcularse por el método de Gouraud, interpolando linealmente entre los colores de los tres vértices.
Interpolación lineal del color para el nuevo pixel (método de Gouraud).
Si existe una textura definida o transparencia, efectuar la modificación de color correspondiente.
Se trata de la última fase, en ocasiones la más costosa, del proceso, por lo que es la primera que se suele integrar en el hardware gráfico. En esta etapa se trata de asignar colores a los pixels correspondientes al interior de cada triángulo proyectado que cae dentro del área de visualización. Los colores asignados deben calcularse por el método de Gouraud, interpolando linealmente entre los colores de los tres vértices.
Renderizado en tiempo real
La idea fundamental del procesado en tiempo real es que todos los objetos deben ser descompuestos en polígonos. Estos polígonos serán descompuestos a su vez en triangulos. Cada triangulo será proyectado sobre laventana bidimensional y rellenado con los colores adecuados para reflejar los efectos de la iluminación, texturas, etc. Ua vez se han generado los triangulos, en la pipeline existen dos partes claramente diferenciadas: uina primera etapa operaciones realizadas sobre cada uno de los vértices, y después de que estos se proyecten sobre la ventana, entonces comienza una segunda fase de cálculos realizados para cada pixel cubierto por los triangulos.
Alto Acabado
Sombreado Constante o plano. Un cálculo para todo el polígono. Obtenemos una intensidad que aplicamos a un conjunto de puntos de un objeto (p.ej. todo un triángulo). Aceleramos el proceso de síntesis. Correcto si se verifica: Fuente de luz en el infinito. Observador en el infinito. El polígono representa una superficie plana real del objeto que se modela y no es una aproximación de un objeto curvo.
Realistas: iluminación global
Trazado de rayos
El trazado de rayos computa la interaccion de la luz desde un punto de vista determinado y es particularmente adecuado para superficies reflectantes. Puede utilizarse como propiedad especifica de un determinado material.
Radiosidad
Esta basado en principios generales que se pueden encontrar en un manual general sobre rendering. En el estado inicial la escena consta de dos tipos de objetos: objetos que emiten luz y objetos que reciben luz. A partir de aquí, en una primera vuelta, se computa la luz que recibe cada objeto en una aproximación mas exacta, cada parte de un objeto, según una subdivisión cuya densidad puede percisarse en sucesivas aproximaciones. Cada una de estas partes, según su grado de reflexividad, su orientación y su distancia con respecto a las fuentes de luz original, se convertirá en una segunda vuelta, en un nuevo emisor de energía lumínica, una fuente de luz secundaria que iluminara a su vez a los objetos que le rodean.
Calculos de iluminación por pixel
La iluminación por píxel en tiempo real es una tecnología revolucionaria ofrecida como primicia por NVIDIA Shading Rasterizer. La iluminación dinámica a nivel de píxel libera a los desarrolladores de las restricciones de otros sistemas de iluminación y pone a su alcance toda una gama de sofisticados efectos. La potencia de NSR eleva la calidad de la experiencia multimedia que ofrecen las GPU NVIDIA. NSR mantiene la alta resolución en entornos dinámicos y proporciona la experiencia de juego más impactante.
La técnica Pixel Shader
La técnica Pixel Shader es una tecnología que pueden incorporar el hardware que se encarga de convertir las instrucciones generadas por un ordenador o una videoconsola en gráficos visualizables en la pantalla de TV o monitor, dicha técnica se encarga de virtualizar el mundo físico mediante gráficos generados digitalmente, en concreto el pixel shader se encarga de la gestión de iluminado de la escena, produciendo los efectos lumínicos de luces y sombras.
El hardware que implementa Pixel Shader es comúnmente conocido como "la tarjeta gráfica", o adaptador gráficos, VGAs o tarjetas de vídeo.
El hardware que implementa Pixel Shader es comúnmente conocido como "la tarjeta gráfica", o adaptador gráficos, VGAs o tarjetas de vídeo.
Sombreado Constante o plano
Un calculo para todo el polígono
Obtenemos una intensidad que aplicamos a un conjunto de puntos de un objeto (p.ej. todo un triángulo)
Aceleramos el proceso de síntesis
Correcto si se verifica
Fuente de luz en el infinito
Observador en el infinito
El polígono representa una superficie plana real del objeto que se modela y no es una aproximación de un objeto curvo.
Calcula normales al polígono
La iluminación cte. no produce buenos resultados en superficies curvas (aprox. por
facetas planas).
Evaluar la ecuación de iluminación en cada punto de una superficie genérica es muy costoso. Posible solución: aproximar mediante facetas planas e interpolar dentro de cada polígono. Hay que evitar producir una apariencia “faceteada” (bandas de Mach; respuesta del ojo humano).
Sombreado Constante/Plano
(Flat Shading)
Obtenemos una intensidad que aplicamos a un conjunto de puntos de un objeto
–Aceleramos el proceso de síntesis
–Correcto si se verifica:
• Fuente de luz en el infinito
• Observador en el infinito
• El polígono representa una superficie plana real del objeto que se modela y no es una aproximación de un objeto curvo.
Sombreado por Interpolación
La iluminación cte. no produce buenos resultados en superficies curvas (aprox. Por facetas planas)
– Evaluar la ecuación de iluminación en cada punto de una superficie genérica es muy costoso
– Posible solución: aproximar mediante facetas planas e interpolar dentro de cada polígono
– Hay que evitar producir una apariencia “facetada” (bandas de Mach; respuesta del ojo humano).
Sombreado de Gouraud
Se basa en la interpolación de intensidad o color
• Considera que facetas planas vecinas proceden de aproximar una superficie curva (salvo que se declare una arista real entre ambas)
• Elimina en gran medida las discontinuidades de iluminación
• Es sencilla, pero produce peores resultados en objetos con brillos especulares que el método de Phong.
• Implementado en OpenGL.
Necesita la dirección de la normal en cada vértice (si se desconoce, se calcula a partir de las normales de las facetas que contienen el vértice)
• Si dos facetas están separadas por una arista real, se utilizan dos normales diferentes para
trabajar en cada faceta (se promedian las normales situadas solo a un lado de la arista)
• A partir de la normal en cada vértice, se evalúa la ecuación de iluminación (solo para cada vértice) y se obtiene un valor de intensidad para cada uno de ellos
• Se realiza una interpolación bilineal para obtener la intensidad en cada punto dentro de la
faceta (de forma incremental).
Sombreado de Phong
• Se basa en la interpolación de la dirección de la normal, calculada de la misma forma que antes.
• Igual que en Gouraud, se interpola a lo largo de cada línea de barrido, entre los puntos inicial y final, interpolados a su vez de los valores de los vértices de la arista.
• Captura mejor los brillos especulares en el medio de facetas planas (Gouraud los puede omitir).
Produce mejores resultados, a un coste computacional mayor (hay que incrementar la dirección de la normal en tres direcciones, normalizarla y calcular la ecuación de sombreado encada punto)
• Si el coeficiente de reflexión especular es pequeño, los resultados no difieren tanto (se pueden combinar objetos sombreados por ambos métodos en una escena).
http://www.fdi.ucm.es/profesor/segundo/PDFs/7SombreadoVisualizacion.pdf
http://cannes.itam.mx/Alfredo/Espaniol/Cursos/Grafica/Sombreado.pdf
Intensidad completa
La intensidad completa exclusivamente por efectos de iluminación es la siguiente:
http://www.fdi.ucm.es/profesor/segundo/PDFs/7SombreadoVisualizacion.pdf
http://cannes.itam.mx/Alfredo/Espaniol/Cursos/Grafica/Sombreado.pdf
perdon este esta mal el otro si esta bien
Clasicas: Iluminacion local
Calculos de iluminación por vértices
Para poder aplicar iluminación necesitamos asociar a cada vértice de nuestro objeto un vector normal asociado. Cuando tenemos la normal calculada tenemos que normalizarla, o sea, dividir ese vector por su propio modulo para que sea unitario, pero también podemos hacer que se encargue la OpengGl activando la normalización,
domingo, 2 de octubre de 2011
Fractal Fdesign
FDESIGN
Este software fue desarrollado por D. Nelson. Es un programa orientado a la creación de fractales IFS. El método de creación de este tipo de fractales sin un programa como éste es poco menos que un infierno, al estar compuestos por una matriz ininteligible de números. Los requerimientos del programa son prácticamente los mismos que los de Fractint, y además es 100% compatible con este último, al poder exportar e importar archivos de parámetros.
Generan los algoritmos base y las gráficas con las que son trazados los dibujos de fractales naturales, los cuales son utilizados para las composiciones artísticas realizadas por Sebastián Salado tomando como base las diferentes imágenes producidas por estos y otros programas gráficos. Es un buen programa para DOS visualmente la construcción de fractales IFS arrastrando los triángulos con el ratón.
Fdesing es un programa de dominio público que es compatible con Fractint. Está escrito en TurboC++ por Doug Nelson.
Suponemos que lo has bajado y desempaquetado en el directorio donde tienes Fractint. Ejecuta bajo DOS en este directorio el programa Fdesign. Aparecerá una pantalla con el primer IFS de abajo. Presionando una tecla del ratón accederás a las opciones. El primer IFS corresponde a la opción Normal Plot equivalente al color 1 en Fractint para IFS. Y la segunda versión es el resultado de escoger Alternate Display, que es equivalente a color 0 en Fractint.

Selecciona Load from disk. Comprobarás que existe un buen repertorio de IFS que se visualizan rápidamente. Selecciona en concreto TELEPHONE.TRN apretando el botón derecho del ratón. Obtendrás la siguiente pantalla de trabajo:
Fdesign nos muestra las transformaciones afines visualmente. El triángulo inicial o de referencia se dibuja en rojo y con líneas gruesas. TELEPHONE.TRN se genera mediante dos transformaciones contractivas. Cada triángulo en líneas continuas es el resultado de aplicar cada una de estas dos transformaciones respectivamente sobre el triángulo de referencia. El triángulo amarillo corresponde a una reducción y giro horario del triángulo de referencia. El triángulo morado corresponde a una reducción más acusada y un volteado del triángulo de referencia más una translación considerable. En todo momento puedes observar cuáles son los parámetros del IFS en la forma matricial, que ya vimos en Fractint.
Fdesign nos permitirá editar transformaciones manipulando triángulos semejantes a los anteriores. Hagamos variaciones sobre los triángulos. Para ello selecciona Adjust triangle. Escojamos el triángulo pequeño morado pulsando el botón izquierdo sobre él. Ahora haz clic cerca de un vértice y varía el tamaño del triángulo. El efecto sobre el IFS se mostrará a tiempo real. Aquí tienes un ejemplo:
Fdesign nos permitirá editar transformaciones manipulando triángulos semejantes a los anteriores. Hagamos variaciones sobre los triángulos. Para ello selecciona Adjust triangle. Escojamos el triángulo pequeño morado pulsando el botón izquierdo sobre él. Ahora haz clic cerca de un vértice y varía el tamaño del triángulo. El efecto sobre el IFS se mostrará a tiempo real. Aquí tienes un ejemplo:
domingo, 4 de septiembre de 2011
Tarea 4 Vector,punto y escalar
Vector
Es una herramienta geométrica utilizada para representar una magnitud física del cual depende únicamente un módulo (o longitud) y una dirección (u orientación) para quedar definido.
Graficos vectoriales
Una imagen vectorial es una imagen digital formada por objetos geométricos independientes (segmentos, polígonos, arcos, etc.), cada uno de ellos definido por distintos atributos matemáticos de forma, de posición, de color, etc. Por ejemplo un círculo de color rojo quedaría definido por la posición de su centro, su radio, el grosor de línea y su color.
Este formato de imagen es completamente distinto al formato de los gráficos rasterizados, también llamados imágenes matriciales, que están formados por píxeles. El interés principal de los gráficos vectoriales es poder ampliar el tamaño de una imagen a voluntad sin sufrir el efecto de escalado que sufren los gráficos rasterizados. Asimismo, permiten mover, estirar y retorcer imágenes de manera relativamente sencilla. Su uso también está muy extendido en la generación de imágenes en tres dimensiones tanto dinámicas como estáticas.
Ventajas
- Dependiendo de cada caso particular, las imágenes vectoriales pueden requerir menor espacio en disco que un mapa de bits. Las imágenes formadas por colores planos o degradados sencillos son más factibles de ser vectorizadas. A menor información para crear la imagen, menor será el tamaño del archivo. Dos imágenes con dimensiones de presentación distintas pero con la misma información vectorial, ocuparán el mismo espacio en disco.
- No pierden calidad al ser escaladas. En principio, se puede escalar una imagen vectorial de forma ilimitada. En el caso de las imágenes rasterizadas, se alcanza un punto en el que es evidente que la imagen está compuesta por píxeles.
- Los objetos definidos por vectores pueden ser guardados y modificados en el futuro.
- Algunos formatos permiten animación. Esta se realiza de forma sencilla mediante operaciones básicas como traslación o rotación y no requiere un gran acopio de datos, ya que lo que se hace es reubicar las coordenadas de los vectores en nuevos puntos dentro de los ejes x, y, y z en el caso de las imágenes 3D.
Desventajas
- Los gráficos vectoriales en general no son aptos para codificar fotografías o vídeos tomados en el "mundo real" (fotografías de la Naturaleza, por ejemplo), aunque algunos formatos admiten una composición mixta (vector + imagen bitmap). Prácticamente todas las cámaras digitales almacenan las imágenes en formato rasterizado.
- Los datos que describen el gráfico vectorial deben ser procesados, es decir, el computador debe ser suficientemente potente para realizar los cálculos necesarios para formar la imagen final. Si el volumen de datos es elevado se puede volver lenta la representación de la imagen en pantalla, incluso trabajando con imágenes pequeñas.
- Por más que se construya una imagen con gráficos vectoriales su visualización tanto en pantalla, como en la mayoría de sistemas de impresión, en última instancia tiene que ser traducida a píxeles.
Puntos
Es una variación del diagrama lineal simple el cual esta formado por líneas rectas o curvas, que resultan de la representación, en un eje de coordenadas, de distribuciones de frecuencias, este construye colocando en el eje x los valores correspondientes a la variable y en el eje de las ordenadas el valor correspondiente a la frecuencia para este valor. Proporciona principalmente información con respecto a las frecuencias.
Escalar
Se puede representarse con un único número (única coordenada) invariable en cualquier sistema de referencia. Así la masa de un cuerpo es un escalar, pues basta un número para representarla (por ejemplo: 75 kg). Por el contrario una magnitud es vectorial o más generalmente tensorial, cuando se necesita algo más que un número para representarla completamente. Por ejemplo, la velocidad del viento es una magnitud vectorial, ya que además de su módulo (que se mide como una magnitud escalar), debe indicarse también su dirección (norte, este, etc.), que se define por un vector unitario. En cambio, la distribución de tensiones internas de un cuerpo requiere especificar en cada punto una matriz llamada tensor tensión y por tanto el estado de tensión de un cuerpo viene representado por una "magnitud tensorial.
Funciones del Opengl
glutInit(): Es la función que inicializa la librería GLUT y negocia con el sistema de ventanas la apertura de una nueva ventana. Sus parámetros deben ser los mismos que los de la función main() sin modificar.
glutInitDisplayMode(): Define el modo en el que se debe dibujar la ventana. Sus parámetros, como en muchas de las funciones OpenGL, se definen con flags o máscaras de bits. En este caso, GLUT_RGB indica el tipo de modelo de color con el que se dibujará (Red-Green-Blue), GLUT_DEPTH indica que se debe incluir un buffer de profundidad y GLUT_DOUBLE que se debe utilizar un doble buffer.
glutInitWindowSize(): Se define el tamaño de la ventana en píxeles (anchura y altura).
glutInitWindowPosition(): La distancia horizontal y vertical con respecto de la esquina superior izquierda del monitor donde la ventana deberá aparecer.
glutCreateWindow(): Se crea propiamente la ventana, y el string que se pasa como argumento, es utilizado como nombre de la nueva ventana.
glutDisplayFunc(): Esta función es la más importante de las funciones callback. Gracias a la definición de las funciones callback, GLUT hace posible una dinámica de programación de aplicaciones OpenGL.
glutDisplayFunc(display): Define que la función display que es pasada como argumento sea ejecutada cada vez que GLUT determine que la ventana debe ser dibujada (la primera vez que se
muestra la ventana) o redibujada (cuando se maximiza, cuando se superponen varias ventanas, etc).
display(): Definida como función callback para dibujar o redubujar la ventana cada vez que sea necesario.
glClearColor(): Establece el color de fono de la ventana, que es con
el que se “borra” la ventana.
glClear(): Esta función se encarga de borrar el fondo de la ventana. Acepta como argumento el buffer específico que se desea borrar, en este caso el GL_COLOR_BUFFER_BIT y el GL_DEPTH_BUFFER_BIT.
glColor3f(): Establece el color actual con el que se va a dibujar una figura.
glMatrixMode(): Especifica la matriz de transformación sobre la que se van a realizar las operaciones siguientes (de nuevo, recordar que OpenGL es una maquina de estados).
glMatrixMode(GL_PROJECTION) : Afecta la perspectiva de la proyección.
glLoadIdentity(): Carga como matriz de proyección la matriz identidad. Esto es como inicializar a uno los valores de dicha matriz.
Suscribirse a:
Entradas (Atom)