61
COMPUTAÇÃO GRÁFICA COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Embed Size (px)

Citation preview

Page 1: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

COMPUTAÇÃO GRÁFICACOMPUTAÇÃO GRÁFICA

Aula 03

Prof. Edison Oliveira de Jesus

Page 2: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Assuntos abordados nesta Assuntos abordados nesta aulaaula

Preenchimento de Polígonos

Page 3: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Representação de um polígonoRepresentação de um polígono Um polígono pode ser representado da seguinte

forma:

onde: vk = vértice de coordenadas ( x , y )

v1 v2 v3 vnP λ

Page 4: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Construção de um polígonoConstrução de um polígono

v1

v4

v3

v2

v5

draw

draw

draw

draw

draw

Page 5: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Usa-se n – 1 vértices

Último vértice é igual ao primeiro

Problema nesta representação:

Transformações geométricas são aplicadas a ca-da vértice;

Page 6: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Solução para este problema:

Representar o polígono pelas suas coordenadas relativas de todos os vértices exceto e primeiro, que terão coordenadas absolutas.

V1 ( x, y ) v2

v3

v4

a´´ unidades

a´ unidades

a´´´´ unidades

A´´´ unidades

Page 7: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Outra representaçãoOutra representação Vetorial com estrutura da linguagem:

Estrutura PONTO x, y

PONTO coordenadas[10]

Page 8: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Métodos de preenchimento do Métodos de preenchimento do polígonopolígono

FLOOD

um pixel aleatório interno ao polígono é enviado à rotina FLOOD;

Neste caso, este pixel está apagado e portanto, ele é aceso.

Todos os pixels vizinhos a este pixel também são enviados à rotina; ( recursão pode ser utilizada aqui ).

Page 9: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Problemas com este métodoProblemas com este método

Se a quantidade de pontos for muito grande, a solução pode causar um estouro ( overflow ) da pilha de armazenamento.

Uma solução seria a utilização de variáveis globais;

Page 10: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Algoritmo FLOODAlgoritmo FLOODalgoritmo flood ( x, y ) se ( não aceso ( x, y ) ) então plota pixel ( x, y ) flood ( x + 1, y ) flood ( x – 1 , y ) flood ( x, y + 1 ) flood ( x, y – 1 ) fim-seFim-algoritmo

Page 11: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Métodos de preenchimento do Métodos de preenchimento do polígonopolígono

SCAN LINE

Desenha-se o polígono usando seus vértices;

Traça-se uma linha horizontal ( scan line ), passan-do-a em cada um dos vértices do polígono;

A scan line é traçada da esquerda para a direita e deve ficar dentro do bounding box do polígono;

Encontrar a margem esquerda do polígono e come-çar a traçar a scan line até encontrar a margem direita do polígono;

Page 12: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Bounding BoxBounding Box É o retângulo que circunda o polígono.

Page 13: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

PreenchimentoPreenchimento

Scan line

Borda esquerda

Borda direita

Borda esquerda

Borda direita

1

Page 14: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

AlgoritmoAlgoritmoAlgoritmo scan-line ( ) para y = 0 até ymax faça x ← 0 repita enquanto ( não aceso ( x, y ) e x < xmax ) faça x ← x + 1 fim_enquanto // achou margem esquerda se x < xmax então x ← x + 1 xs ← x enquanto ( não aceso ( x, y ) ) faça x ← x + 1 fim_enquanto // achou margem direita linha ( xs, y, x, y ) // scan line x ← x + 1 fim_se até x ≥ xmax fim_parafim_algoritmo

Page 15: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Preenchimento convexoPreenchimento convexo

convexo

Convexo horizontal Não

convexo

Page 16: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Preenchimento ConvexoPreenchimento Convexo Para polígonos convexos, o algoritmo scan line

mostrado anteriormente, funciona sem problemas;

O problema neste tipo de preenchimento é quando se trata com polígonos não convexos.

Page 17: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Problemas do métodoProblemas do método Traçar scan lines erradas.

Page 18: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Preenchimento de polígonos em Preenchimento de polígonos em geralgeral

Calcular as coordenadas dos pontos de interseção de cada scan line com as bordas do polígono;

Ordenar estas coordenadas tomando com chave o valor de x;

Agrupar as coordenadas em pares;

Preencher o polígono usando como extremos das scan lines, os pares obtidos no item anterior;

Page 19: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Calculando os pontos de Calculando os pontos de interseçãointerseção

A interseção de uma scan line com uma borda do polígono é dada da seguinte forma:

borda

Scan line nova

Scan line anterior

P1 ( x1 , y1 )

P2 ( x2 , y2 )

Panterior( Xanterior Yscan line anterior )

Pnovor( Xnovor Yscan line anterior + 1)

X

Y

Page 20: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Se y1 < y2

então ypasso ← 1

senão swapping ( P1 e P2 )

Logo: y2 – y1 = 1 pois passo na direção y é igual a 1

Page 21: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Portanto: m = ( y2 – y1 ) / ( x2 – x1 )

m = 1 / ( x2 – x1 ) Como x1 e x2 são conhecidos, o ponto p ( xnovo, yscan line )

terá suas coordenadas calculadas da seguinte for-ma:

equação ( 1 )

Page 22: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

da equação 1, tem-se:

m = 1 / ( xnovo – x1 )

E logo:

xnovo = x1 + 1 / m

e: Yscan line corresponde à y da linha scan line em estudo;

Page 23: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Como o processo é repetido para cada scan line, pode-se escrever:

Xnovo = Xanterior + 1 / m equação ( 2 )

Page 24: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Nova scan line

Scan line anterior

xanterior xnovoX

Y

Page 25: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Portanto, se a primeira scan line for conhecida ( aquela mais próxima ao eixo X ), pode-se através da equação 2, calcular todas as outras scan lines.

A idéia é traçar uma scan line por vez, começando por baixo até chegar ao topo do polígono, ou seja, ao valor mais alto de Y.

Page 26: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Quais bordas a scan line intercepta? Não se deve testar cada scan line com todas as bordas

do polígono e sim, criar uma tabela com to-das as scan lines que cortam o polígono;

A estrutura de dados para esta tabela pode ser um vetor de apontadores, contendo um apontador para cada scan line;

Cada apontador contem aquelas bordas cujo menor valor de y inicia na scan line representada por aquele apontador;

Na verdade cada apontador aponta para uma lista de bordas.

Page 27: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Exemplo de PreenchimentoExemplo de Preenchimento

1 5 10 151

5

10

b1b2

b3

b4

b5 b6b7

b8b9

b10

b11b12

b13

b14 b15

b16b17

b18b19

b20b21

Figura 01

Page 28: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Vetor com os apontadores das Vetor com os apontadores das scan linesscan lines

00 01 02 03 04 05 06 07 08 09 10 11 12

λ λ λ λb1

b21

b20

b19

b18

b17

b16

b2 b3

b14

b15

b12

b13

b11

b4 b10

b6

b9

b5

b8

b7 λ

scan lines→

Isto significa que da scan line 01 têm inicio as bordas 1, 21, 20, 19, 18, 17 e 16

Figura 02

Page 29: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Esta tabela é usada para determinar quais bordas, cada scan line intercepta e qual é o valor de X em cada intercessão;

o valor Y de um ponto de intercessão é o número da scan line atual;

Page 30: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Estrutura de cada bordaEstrutura de cada borda Cada borda do vetor de scan lines tem a seguinte

estrutura:

YTOPO

Y da mais alta scan line que a borda interceptou

Xmin

X da mais baixa scan line daquela borda

1 / m

Valor inverso da inclinação da borda

Figura 03

Page 31: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Lista de bordasLista de bordas Cada scan line deve ter as bordas de sua lista

( conforme mostra a figura 2 ) substituídas pelos seus respectivos valores, como determina a estru-tura de bordas mostrada na figura 3.

Assim, por exemplo, na scan line 01, tem-se a se-guinte lista de bordas:

b1 → b21 → b20 → b19 → b18 → b17 → b16

Page 32: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Exemplo de PreenchimentoExemplo de Preenchimento

1 5 10 151

5

10

b1b2

b3

b4

b5 b6b7

b8b9

b10

b11b12

b13

b14 b15

b16b17

b18b19

b20b21

Figura 01

Page 33: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

A borda b1 por exemplo, vai do ponto ( 2, 2 ) ao ponto ( 4, 1 )

Portanto, para esta borda, a estrutura de bordas da figura 2, seria constituída dos seguintes valores:

maior y = 2 X do menor y = 4 m = -1/2 logo: 1/m = -2

Logo, esta borda é representada pelos valores: [ 2 | 4 | -2 ]

Page 34: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Observe alguns casos especiais:

1. Borda b11 da scan line 5 Vai do ponto ( 14, 5 ) ao ponto ( 14, 6 ) maior y = 6 X do menor y = 14 1 / m = 0

Logo, esta borda é representada pelos valores: [ 6 | 14 | 0 ]

Page 35: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

2. Borda b17 da scan line 1 Como esta borda é horizontal ela já se confunde

com a scan line e portanto, ela não faz parte da lista de bordas da scan line.

Page 36: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

1 5 10 151

5

10

b1b2

b3

b4

b5 b6b7

b8b9

b10

b11b12

b13

b14 b15

b16b17

b18b19

b20b21

Page 37: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Vetor de Scan Lines com as Vetor de Scan Lines com as bordasbordas

A seguir são mostradas as bordas que cada scan line intercepta e os seus valores, conforme a estru-tura apresentada na figura 3:

scan line 1 : [ 2 | 4 | -2 ] → [ 4 | 4 | 1/3 ] → [ 4 | 6 | -1/3 ] → [ 4 | 6 | 1/3 ] → [ 4 | 9 | -2/3 ] → [ 3 | 13 | 3/2 ]

scan line 2 : [ 3 | 2 | -1 ]

scan line 3 : [ 5 | 1 | 0 ] → [ 4 | 13 | -3 ]

scan line 4 : [ 5 | 12 | 2 ]

scan line 5 : [ 9 | 1 | 1/2 ] → [ 6 | 14 | 0 ]

Page 38: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Vetor de Scan Lines com as Vetor de Scan Lines com as bordasbordas

scan line 6 : [ 7 | 14 | 2 ]

scan line 7 : [ 9 | 5 | -1 ] → [ 10 | 5 | 4/3 ] → [ 11 | 16 | -3/4 ] scan line 8 : [ 10 | 11 | -1 ] → [ 11 | 11 | 2/3 ]

scan line 9 :

scan line 10 :

scan line 11 :

scan line 12 :

Page 39: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Transformação de vérticesTransformação de vértices Na construção da lista de bordas, são utilizadas as

scan lines que passam pelos vértices do polígono;

Foram mostradas anteriormente as situações onde os vértices são incorporados a esta lista;

Ou seja: ( as linhas tracejadas indicam as scan lines )

Entra na lista

Não entra na lista

Não entra na lista

Entra na lista

Não entra na lista

Figura 04

Page 40: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

No primeiro caso, o vértice corresponde às bordas que estão sobre a scan line;

No segundo caso, o vértice corresponde às bordas que estão sob a scan line;

No terceiro caso, a borda está sobre a scan line;

No quarto caso, a scan line cruza a borda fora de seus vértices;

No último caso, o vértice corresponde às bordas que cruzam a scan line.

Page 41: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

No último caso, é necessário fazer uma transformação do vértice;

Esta transformação é necessária, senão o vértice é contabilizado duas vezes, uma para a scan line anterior e outra para a scan line atual;

Y + 1

Y X = Xanterior + 1 / m

.(a) (b)

V V

Page 42: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

a) Corresponde a situação original;

b) O vértice V foi deslocado para a scan line seguinte, e desta forma sua abscissa deve ser atualizada, conforme as equações:

ynovo = yanterior + 1

xnovo = xanterior + 1 / m

Page 43: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Com a transformação dos vértices, a borda trans-formada é retirada da lista atual de scan lines e é colocada na scan line seguinte já com os seus valores atualizados.

Page 44: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Transformando vérticesTransformando vértices Após analisar o polígono, verifica-se que as bordas mar-

cadas a seguir, devem ser transformadas (seu inicio deve passar para a próxima scan line ):

scan line 1 : b1 → b21 → b20 → b19 → b18 → b16

scan line 2 : b2

scan line 3 : b3 → b14

scan line 4 : b12

scan line 5 : b4 → b11

scan line 6 : b10

scan line 7 : b5 → b6 → b9

scan line 8 : b7 → b8

scan line 9 : scan line 10 :scan line 11 :scan line 12 :

Page 45: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Rearranjo das scan linesRearranjo das scan lines Após rearranjadas, as scan lines têm a seguinte compo-

sição: ( as bordas devem estar ordenadas pelo valor de X )

scan line 1 : [ 2 | 4 | -2 ] → [ 4 | 4 | 1/3 ] → [ 4 | 6 | -1/3 ] → [ 4 | 6 | 1/3 ]

scan line 2 : [ 4 | 8 1/3 | -2/3 ] → [ 3 | 14 1/2 | 3/2 ]

scan line 3 : [ 3 | 1 | -1 ]

scan line 4 : [ 5 | 1 | 0 ] → [ 4 | 10 | -3 ]

scan line 5 : [ 5 | 14 | 2 ]

Page 46: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

scan line 6 : [ 9 | 1 1/2 | 1/2 ] → [ 6 | 14 | 0 ]

scan line 7 : [ 9 | 5 | -1 ] → [ 10 | 5 | 4/3 ] → [ 7 | 16 | 2 ]

scan line 8 : [ 10 | 11 | -1 ] → [ 11 | 11 | 2/3 ] → [ 11 | 15 1/4 | -3/4 ]

scan line 9 :

scan line 10 :

scan line 11 :

scan line 12 :

Page 47: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Cálculo das scan linesCálculo das scan lines Calcular agora as scan lines, utilizando a equação 1, até que seus respectivos

valores de Y sejam atingidos. A partir deste ponto elas não são mais calculadas, pois a borda terminou.( Estas estarão marcadas em lilás )

( as bordas devem continuar ordenadas pelo valor de X )

scan line 1 : [ 2 | 4 | -2 ] → [ 4 | 4 | 1/3 ] → [ 4 | 6 | -1/3 ] → [ 4 | 6 | 1/3 ]

scan line 2 : [ 2 | 2 | -2 ] → [ 4 | 4 1/3 | 1/3 ] → [ 4 | 5 2/3 | -1/3 ] → [ 4 | 6 1/3 | 1/3 ] → [ 4 | 8 1/3 | -2/3 ] → [ 3 | 14 1/2 | 3/2 ]

scan line 3 : [ 3 | 1 | -1 ] → [ 4 | 4 2/3 | 1/3 ] → [ 4 | 5 1/3 | -1/3 ] → [ 4 | 6 2/3 | 1/3 ] → [ 4 | 7 2/3 | -2/3 ] → [ 3 | 16 | 3/2 ]

scan line 4 : [ 5 | 1 | 0 ] → [ 4 | 5 | 1/3 ] → [ 4 | 5 | -1/3 ] → [ 4 | 7 | 1/3 ] → [ 4 | 7 | -2/3 ] → [ 4 | 10 | -3 ]

Page 48: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

scan line 5 : [ 5 | 1 | 0 ] → [ 5 | 14 | 2 ]

scan line 6 : [ 9 | 1 1/2 | 1/2 ] → [ 6 | 14 | 0 ]

scan line 7 : [ 9 | 2 | 1/2 ] → [ 9 | 5 | -1 ] → [ 10 | 5 | 4/3 ] → [ 7 | 16 | 2 ]

scan line 8 : [ 9 | 2 1/2 | 1/2 ] → [ 9 | 4 | -1 ] → [ 10 | 6 1/3 | 4/3 ] → [ 10 | 11 | -1 ] → [ 11 | 11 | 2/3 ] → [ 11 | 15 1/4 | -3/4 ]

scan line 9 : [ 9 | 3 | 1/2 ] → [ 9 | 3 | -1 ] → [ 10 | 7 2/3 | 4/3 ] → [ 10 | 10 | -1 ] → [ 11 | 11 2/3 | 2/3 ] → [ 11 | 14 1/2 | -3/4 ]

scan line 10 : [ 10 | 9 | 4/3 ] → [ 10 | 9 | -1 ] → [ 11 | 12 1/3 | 2/3 ] → [ 11 | 13 3/4 | -3/4 ]

scan line 11 : [ 11 | 13 | 2/3 ] → [ 11 | 13 | -3/4 ]

Page 49: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Obtendo linhas de Obtendo linhas de preenchimentopreenchimento

O próximo e último passo é a obtenção das linhas de preenchimento ( scan line ) do polígono;

Para cada uma das scan lines obtidas no passo anterior, um segmento de reta que corresponde ao preenchimento do polígono é obtido tomando-se: o X da primeira borda da lista de bordas da scan

line para formar o X1 ;

o X da segunda borda da lista de bordas da scan line para formar o X2 ;

Page 50: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Desta forma o primeiro segmento de reta de preenchimento é formado pelos pontos P1 de coordenadas ( x1 , y ) e P2 de coordenadas ( x2 , y ), onde x1 e x2 são obtidos como mostrado no passo anterior, e y corresponde ao número da scan line.

Isto significa que um par de bordas na lista de scan line, forma um segmento de reta corres-pondente ao preenchimento daquela scan line.

Page 51: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Exemplo de PreenchimentoExemplo de Preenchimento

1 5 10 151

5

10

b1b2

b3

b4

b5 b6b7

b8b9

b10

b11b12

b13

b14 b15

b16b17

b18b19

b20b21

Figura 01

Page 52: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Desta forma, os segmentos de reta obtidos para o preenchimento do polígono, são os seguintes:

scan line 1 : ( 4 , 1 ) ( 4 , 1 )

( 6 , 1 ) ( 6 , 1 )

scan line 2 :( 2 , 2 ) ( 4 1/3 , 2 )

( 5 2/3 , 2 ) ( 6 1/3 , 2 ) ( 8 1/3 , 2 ) ( 14 1/2 , 2 )

Page 53: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

scan line 3 :( 1 , 3 ) ( 4 2/3 , 3 )

( 5 1/3 , 3 ) ( 6 2/3 , 3 ) ( 7 2/3 , 3 ) ( 16 , 3 )

scan line 4 :( 1 , 4 ) ( 5 , 4 )( 5 , 4 ) ( 7 , 4 )( 7 , 4 ) ( 10 , 4 )

scan line 5 :( 1 , 5 ) ( 14 , 5 )

Page 54: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

scan line 6 :( 1 1/2 , 6 ) ( 14 , 6 )

scan line 7 : ( 2 , 7 ) ( 5 , 7 )( 5 , 7 ) ( 16 , 7 )

scan line 8 :( 2 1/2 , 8 ) ( 4 , 8 )

( 6 1/3 , 8 ) ( 11 , 8 )( 11 , 8 ) ( 15 1/4 , 8 )

Page 55: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

scan line 9 :( 3 , 9 ) ( 3 , 9 )( 7 2/3 , 9 ) ( 10 , 9 )( 11 2/3 , 9 ) ( 14 1/2 , 9 )

scan line 10 :( 9 , 10 ) ( 9 , 10 )( 12 1/3 , 10 ) ( 13 3/4 , 10 )

scan line 11 :( 13 , 11 ) ( 13 , 11 )

Page 56: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Otimização do métodoOtimização do método Pode-se otimizar o método:

Eliminando-se pontos da lista de scan lines; Exemplo na scan line 1;

Fundindo scan lines sequenciais. Exemplo na scan line 4.

Page 57: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Lista finalLista final scan line 2 :

( 2 , 2 ) ( 4 1/3 , 2 ) ( 5 2/3 , 2 ) ( 6 1/3 , 2 ) ( 8 1/3 , 2 ) ( 14 1/2 , 2 )

scan line 3 :( 1 , 3 ) ( 4 2/3 , 3 )

( 5 1/3 , 3 ) ( 6 2/3 , 3 ) ( 7 2/3 , 3 ) ( 16 , 3 )

scan line 4 :( 1 , 4 ) ( 10 , 4 )

Page 58: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

scan line 5 :( 1 , 5 ) ( 14 , 5 )

scan line 6 :( 1 1/2 , 6 ) ( 14 , 6 )

scan line 7 : ( 2 , 7 ) ( 16 , 7 )

scan line 8 :( 2 1/2 , 8 ) ( 4 , 8 )

( 6 1/3 , 8 ) ( 15 1/4 , 8 )

Page 59: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

scan line 9 :( 7 2/3 , 9 ) ( 10 , 9 )( 11 2/3 , 9 ) ( 14 1/2 , 9 )

scan line 10 :( 12 1/3 , 10 ) ( 13 3/4 , 10 )

Page 60: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus

Polígono PreenchidoPolígono Preenchido

1 5 10 151

5

10

b1b2

b3

b4

b5 b6b7

b8b9

b10

b11b12

b13

b14 b15

b16b17

b18b19

b20b21

Page 61: COMPUTAÇÃO GRÁFICA Aula 03 Prof. Edison Oliveira de Jesus