martes, 1 de abril de 2008

Algoritmos de Rasterización

Algoritmo de Bresenham

Aunque los resultados, mostrados en la figura parecen aceptable, considerando las líneas de (0,0) a (-8,4) y
(8,-4) mostrará que la línea rasterizada desaparece a un lado de la línea actual y que un ocurre un punto extra en un extremo de la línea, el algoritmo es dependiente de la orientación.

El punto final se determina exactamente, posteriormente, si una función entera es verdadera que las raíz es de nuevo diferente. Así, cualquier algoritmo más complicado que correrá más lento debe ser usado, o el punto final de la línea y la exactitud de la posición debe ser compremetida.

EL algoritmo de Bresenham

Se usa para barrer dispositivos CRT, el algoritmo busca seleccionar la ubicación de barrido para representar una línea recta. Para corregir esto el algoritmo siempre incrementa en una unidad en cualquier x o y dependiente de la tangente de la línea. El incremento en la otra variable, cualquiera en cero o uno, es determinar examinando la distancia entre la ubicación actual de la línea y la ubicación más cerca de la malla. Esta distacia es llamada “error”.

Si la pendiente de la línea es requerida a través de (0,0) es más grande que ½, entonces esta se intersecta con la línea x=1 que serrará con la línea y=1 y con la línea y=0.

El signo de éste termino de error necesita ser examinado.

Para los puntos extremos son aparentemente exactos y que la selección de pixeles son igualmetne espaciados a lo largo de la línea.


Algoritmos de dibujo de líneas

El tubo de rayos catódicos (CRT)

• Barre la pantalla como una matriz discreta de células (pixeles) que se haga brillante.
• No es posible dibujar una línea recta de un punto a otro.
• El proceso que determina que pixeles proporcionaran la mejor aproximación a la línea deseada es llamado “rasterización”.
• Combinado con el proceso de la representación (rendering) en orden del cuadro en línea de exploración es conocido como exploración de conversión.

Antes de discutir el dibujo de líneas específicas es usual considerar los requerimientos generales para tales algoritmos.

• Cuáles son las características deseables para esas líneas (las líneas rectas deben aparecer como líneas rectas y deben iniciar y terminar exactamente).
• Las líneas dibujadas tienen brillo constante a lo largo de su longitud independientemente de la longitud de la línea y orientación.
• Finalmente las líneas deben dibujarse rápidamente

No es posible para una línea precisar el comienzo y el final en ubicaciones específicas. Sin embargo, con una resolución razonable, aproximaciones aceptables es posible.

Sólo para líneas horizontales, verticales, y líneas a 45° el brillo será constante a lo largo de su longitud.

Proporcionar igual brillo a lo largo de las líneas de longitud variable y orientación requiere el cálculo de una raíz cuadrada. Esto retrasará el cálculo. El compromiso hecho generalmente es calcular solamente una aproximación de la longitud de la línea, reducir los cálculos preferiblemente a un mínimo usando integración aritmética, e implementando el resultado en hardware o firmware.

La mayoría de los algoritmos de dibujo usan métodos para simplificar los cálculos.
El algoritmo simple de rasterización dado en la siguiente sección ilustra la aplicación de métodos incrementales.

Analizador diferencial digital

La técnica para obtener una línea recta rasterizada es resolver el modelo de la ecuación esencial.
Para una línea recta


La solución es

Donde x1, y1 y x2, y2 son los puntos de la línea recta requerida y y1 es el valor dado para el paso inicial. Usando una línea rasterizada, esto es llamado analizador diferencial digital (DDA). Para un simple DDA cualquiera x o y, cualquiera es más grande, se elige como una unidad de barrido.

Algoritmo simple que trabajará con todos los cuadrantes:

No hay comentarios: