Primitivas de Rellenado de Areas

17
ASIGNATURA: DISEÑO ASISTIDO POR COMPUTADORA Universidad Nacional Jorge Basadre Grohmann EAP. INGENIERIA EN INFORMATICA Y SISTEMAS WILSON CESAR CALLISAYA CHOQUECOTA WILSON CESAR CALLISAYA CHOQUECOTA WILSON CESAR CALLISAYA CHOQUECOTA WILSON CESAR CALLISAYA CHOQUECOTA

description

Algoritmo de Computación Grafica para Diseño Asistido por Computadora

Transcript of Primitivas de Rellenado de Areas

Page 1: Primitivas de Rellenado de Areas

ASIGNATURA: DISEÑO ASISTIDO POR

COMPUTADORA

Universidad Nacional Jorge Basadre GrohmannEAP. INGENIERIA EN INFORMATICA Y SISTEMAS

WILSON CESAR CALLISAYA CHOQUECOTAWILSON CESAR CALLISAYA CHOQUECOTAWILSON CESAR CALLISAYA CHOQUECOTAWILSON CESAR CALLISAYA CHOQUECOTA

Page 2: Primitivas de Rellenado de Areas

2

INTRODUCCIÓN

Page 3: Primitivas de Rellenado de Areas

3

Métodos de Llenado de Áreas

Relleno por scan – line: Fila a fila va a trazando líneas de color entre aristas.

Relleno por inundación: A partir de un punto central, se va expandiendo recursivamente hasta alcanzar el borde del objeto

Page 4: Primitivas de Rellenado de Areas

4

SCAN - LINE

Por cada scan-line que cruce el poligono se busca la intersección de la línea de barrido y las aristas del polígono.Dichas intersecciones se ordenan y se rellenan a pares.

Page 5: Primitivas de Rellenado de Areas

5

SCAN - LINE

¿Y cuando un Scanline pasa por un vértice?

En la scan-line Y aparecerán 5 aristas intersectadas.

Page 6: Primitivas de Rellenado de Areas

6

SCAN - LINE

La solución contarlo solo una vez.

La diferencia de Y y Y’ es que las aristas estan a un lado del poligono.

Problema que hariamos con Y’, solución contarlo 2 veces.

Page 7: Primitivas de Rellenado de Areas

7

ACELERACIÓN DE SCAN - LINE

Para ello aprovecharemos la pendiente.

kk

kk

XX

yym

−−=

+

+

1

1

Como el Incremento de y es de 1entre cada scan-line

mXX kk

11 +=+

Page 8: Primitivas de Rellenado de Areas

8

ALGORITMO OPTIMIZADO PARA EL RELLENO SCAN-LINE

Primero creamos una tabla de bordes (TB) para todas las aristas del poligono (exceptuando las horizontales)

Cada arista viene representadaa por cuatro valores- Coordenada Y del punto más alto- Coordenada X del punto más bajo- Inversa de la pendiente- Puntero a otra arista en la misma scan-line

Page 9: Primitivas de Rellenado de Areas

9

ALGORITMO OPTIMIZADO PARA EL RELLENO SCAN-LINE

Page 10: Primitivas de Rellenado de Areas

10

CONSIDERACIONES EN TORNO A LOS VERTICES

Page 11: Primitivas de Rellenado de Areas

11

ALGORITMO OPTIMIZADO PARA EL RELLENO SCAN-LINE

Comenzamos desde abajo, y vamos creando una lista de bordes activos (LBA), que contendrán en cada iteración las aristas cruzadas por dicha scan-line.

Page 12: Primitivas de Rellenado de Areas

12

EJEMPLO

Page 13: Primitivas de Rellenado de Areas

13

EJEMPLO

Page 14: Primitivas de Rellenado de Areas

14

EJEMPLO

Page 15: Primitivas de Rellenado de Areas

15

RELLENO POR INUNDACIÓN

Empieza en un punto interior y pinta hasta encontrar la frontera del objeto.Partimos de un punto inicial (x,y), un color de relleno y un color de fronteraEl algoritmo va testeando los pixeles vecinos a los ya pintados, viendo si son frontera o no.No sólo sirven para polígonos sino para cualquier área curva sobre una imagen.Se usan en los programas de dibujo.

Page 16: Primitivas de Rellenado de Areas

16

ALGORITMO DE RELLENO POR INUNDACIÓN

Hay dos formas de considerar los vecinos: 4 u 8.Dependiendo de qué esquema elijamos, el relleno será diferente.

Page 17: Primitivas de Rellenado de Areas

17

ALGORITMO DE RELLENO POR INUNDACIÓN

El algoritmo anterior requiere mucha memoria, la solución para ello seria en no explorar todos los vecinos de cada pixel sino solo a lo largo de un scan-line