Sei sulla pagina 1di 17

TEMA 2.

Algoritmos Bsicos
- Rasterizacin de lneas - Rasterizacin de circunferencias - Rasterizacin de polgonos - Rasterizacin de primitivas con grosor - Recorte de primitivas

TEMA 2. Algoritmos Bsicos


- Rasterizacin de lneas

Ecuacin de la recta: y = m x B

y y 1 y 0 m es la pendiente: m = = x x 1 x 0

P0 (x0, y0)

P1 (x1, y1)

TEMA 2. Algoritmos Bsicos


- Rasterizacin de lneas (II) Algoritmo de fuerza bruta: Aplicacin de la frmula tal cual

Algoritmo bsico incremental (DDA: digital diferential analyzer): Si |m| < 1 entonces se incrementan m pixels en y por cada uno en x Si |m| > 1 entonces se incrementan 1/m pixels en x por cada uno en y

TEMA 2. Algoritmos Bsicos


- Rasterizacin de lneas (III) Algoritmo del punto medio:

Eleccin entre E y NE Utiliza una variable de decisin La variable se actualiza segn la eleccin

Trabaja incrementalmente para ahorrar clculos

TEMA 2. Algoritmos Bsicos


- Rasterizacin de circunferencias

Ecuacin implcita: x y = r Ecuacin explcita:

y = r x
2

En los algoritmos se aprovechan las simetras

TEMA 2. Algoritmos Bsicos


- Rasterizacin de circunferencias (II) Algoritmo de fuerza bruta: aplicacin directa de la ecuacin explcita

Ecuacin explcita:

y = r x
2

TEMA 2. Algoritmos Bsicos


- Rasterizacin de circunferencias (III) Algoritmo del punto medio:

Eleccin entre E y SE Utiliza una variable de decisin La variable se actualiza segn la eleccin Trabaja incrementalmente para ahorrar clculos

TEMA 2. Algoritmos Bsicos


- Rasterizacin de polgonos

1.- Elegir qu pxels se van a rellenar Uso de lneas de barrido y spans 2.- Elegir el valor con el que se rellenan

TEMA 2. Algoritmos Bsicos


- Rasterizacin de polgonos (II)

Hay que conocer los extremos de los spans El algoritmo del punto medio no es suficiente (interior?) Criterio: izquierda y abajo estn dentro; derecha y arriba, fuera Algoritmo incremental para determinar los extremos de los spans

TEMA 2. Algoritmos Bsicos


- Rasterizacin de polgonos (III) Trabaja incrementalmente La tabla de lados activos de a la anterior

cada lnea se calcula en base

Tabla de lados activos: Tabla de lados

Slivers:

TEMA 2. Algoritmos Bsicos


- Rasterizacin de primitivas con grosor Mtodo de mltiples pixels:

Pendiente entre -1 y 1: ms de un pixel por columna Resto de pendientes: ms de un pixel por fila Problemas de grosor y en unin de lneas

TEMA 2. Algoritmos Bsicos


- Rasterizacin de primitivas con grosor (II) Mtodo de brocha mvil:

Brocha centrada en cada pixel de la primitiva Las diferencias de grosor cambian de sitio Brocha circular mejora los resultados

TEMA 2. Algoritmos Bsicos


- Recorte de primitivas Eliminar aquellas partes de primitivas que no es preciso rasterizar Permite acelerar la visualizacin Recorte de lneas: los extremos Simplifica procesos posteriores (determinacin de oclusiones, ...) Se hace en funcin de

* Fuerza bruta: calcular las intersecciones sin ms, utilizando ecuaciones paramtricas: P = P 0 t P 1 P 0

TEMA 2. Algoritmos Bsicos


- Recorte de primitivas (II) * Cohen-Sutherland: cdigos de bits para los vrtices

TEMA 2. Algoritmos Bsicos


- Recorte de primitivas (II) * Cyrus-Beck: algoritmo paramtrico

N i [ P 0 P E ] t= N i P 1 P 0
i

TEMA 2. Algoritmos Bsicos


- Recorte de primitivas (III) Recorte de polgonos

Puede ser necesario: * Dividir aristas * Conservar aristas * Crear nuevas aristas * Eliminar aristas

TEMA 2. Algoritmos Bsicos


- Recorte de primitivas (IV) Algoritmo de Sutherland-Hodgman

Reduce el problema a recortar contra un lado infinito cada vez Recorta arista a arista. Cuatro posibles casos: