Vous êtes sur la page 1sur 18

Computao Grfica

Luciana de Oliveira Berretta - luciana@inf.ufg.br INSTITUTO DE


INFORMTICA
UFG

Computao Grfica
Computao Grfica
Luciana de Oliveira Berretta - luciana@inf.ufg.br INSTITUTO DE
INFORMTICA
UFG

Computao Grfica
Objetivo
Preenchimento de reas
Computao Grfica
Luciana de Oliveira Berretta - luciana@inf.ufg.br INSTITUTO DE
INFORMTICA
UFG

Preenchimento de reas

Na maioria dos pacotes grficos, uma primitiva um slido colorido


ou uma rea padro de um polgono.

Algumas vezes, outros tipos de reas so analisados, mas as reas


poligonais so as mais fceis de serem projetadas e processadas,
desde que tenham limites.
Computao Grfica
Luciana de Oliveira Berretta - luciana@inf.ufg.br INSTITUTO DE
INFORMTICA
UFG

Preenchimento de reas
Assim como no traado de linhas e curvas, precisa-se de um
mecanismo eficiente para determinar quais pixels esto no interior
de uma certa rea, e devem ser pintados;
Computao Grfica
Luciana de Oliveira Berretta - luciana@inf.ufg.br INSTITUTO DE
INFORMTICA
UFG

Preenchimento de reas

Os algoritmos responsveis pelo preenchimento de polgonos


procuram as bordas de uma dada rea, de forma a definir quando
o pixel deve mudar de cor e quando deve parar o algoritmo.
Existem dois mtodos bsicos para preenchimento de uma rea
em sistemas raster.
O mtodo de Anlise Geomtrica determina os intervalos nos quais
uma linha de varredura (linha scan line) atravessa a rea do polgono.
O outro mtodo inicia com um ponto do interior do polgono e comea
a pintar ao redor deste ponto at encontrar as bordas do polgono.
Computao Grfica
Luciana de Oliveira Berretta - luciana@inf.ufg.br INSTITUTO DE
INFORMTICA
UFG

Algoritmo de Varredura

No algoritmo de varredura o contorno do polgono j est


desenhado na tela com uma determinada cor, diferente daquela
escolhida para o fundo.
Inicialmente, escolhe um ponto interno deste polgono.
A partir deste ponto, vai mudando a cor do pixel de acordo com a
linha varredura, at encontrar um pixel da cor diferente da cor do
fundo. Ou seja, at encontrar uma aresta do polgono.
Computao Grfica
Luciana de Oliveira Berretta - luciana@inf.ufg.br INSTITUTO DE
INFORMTICA
UFG

Algoritmo de Varredura

Uma lista ligada armazena pontos que servem para continuar o


algoritmo;

Esses pontos fazem o papel de ponto inicial, na iterao seguinte.

Este algoritmo se presta preenchimento de qualquer rea


fechada.
Computao Grfica
Luciana de Oliveira Berretta - luciana@inf.ufg.br INSTITUTO DE
INFORMTICA
UFG

Retngulo

Para preencher um retngulo com uma nica cor, pinta-se cada


pixel dentro de uma linha de varredura da esquerda para a direita
com o mesmo valor de pixel.

Pode-se preencher cada bloco de xmin a xmax;


Computao Grfica
Luciana de Oliveira Berretta - luciana@inf.ufg.br INSTITUTO DE
INFORMTICA
UFG

Algoritmo de Anlise Geomtrica

Determina os intervalos nos quais uma linha de varredura (linha scan


line) atravessa a rea do polgono.

Baseia-se na descrio geomtrica.


Por exemplo, uma lista de vrtices que formam o polgono.

Utiliza as linhas de varredura para identificar os pontos internos do


polgono e as intersees com as arestas do mesmo.
Os pontos de interseo que so identificados so ordenados da
esquerda para a direita.
Os pixels entre cada par de intersees so "setados" com uma cor
especificada.
Computao Grfica
Luciana de Oliveira Berretta - luciana@inf.ufg.br INSTITUTO DE
INFORMTICA
UFG

Algoritmo de Anlise Geomtrica


1 passo)
Montar a tabela de lados: neste passo ser descritos todos os lados
do polgono ( Exemplo de um polgono com uma linha de varredura
em y = 20 )
Computao Grfica
Luciana de Oliveira Berretta - luciana@inf.ufg.br INSTITUTO DE
INFORMTICA
UFG

Algoritmo de Anlise Geomtrica

??????
4

1
Computao Grfica
Luciana de Oliveira Berretta - luciana@inf.ufg.br INSTITUTO DE
INFORMTICA
UFG

Algoritmo de Anlise Geomtrica

4 5

6
2 8
7

1
Computao Grfica
Luciana de Oliveira Berretta - luciana@inf.ufg.br INSTITUTO DE
INFORMTICA
UFG

Algoritmo de Anlise Geomtrica


2 passo
Interseo com a linha de varredura:
identifica as diversas intersees que a linha de varredura possui com os
lados do polgono.
Para eliminar os lados do polgono, os quais a linha de varredura no
intercepta, so definidas as seguintes condies:
Yvarredura > Ymax ;
Yvarredura < Ymin;
Computao Grfica
Luciana de Oliveira Berretta - luciana@inf.ufg.br INSTITUTO DE
INFORMTICA
UFG

Algoritmo de Anlise Geomtrica

Se uma das condies acima for verdadeira para qualquer um dos


lados do polgono, esse lado ser descartado.

A interseo foi obtida pela equao da reta, como mostra a seguir:


Computao Grfica
Luciana de Oliveira Berretta - luciana@inf.ufg.br INSTITUTO DE
INFORMTICA
UFG

Algoritmo de Anlise Geomtrica

3 passo
Ordenam-se os pontos de interseo em ordem crescente e traam-
se as linhas, tomando os pontos de dois em dois.
Os valores de x sero inseridos em uma lista.

(X=93,4)
Computao Grfica
Luciana de Oliveira Berretta - luciana@inf.ufg.br INSTITUTO DE
INFORMTICA
UFG

Boundary-Fill

O processamento do algoritmo Boundary-Fill comea a partir da


escolha de um ponto do interior do polgono, que ento
preenchido (ou pintado).

Os pixels ao redor do ponto escolhido, vo sendo pintados at que


a borda do polgono seja encontrada.
Computao Grfica
Luciana de Oliveira Berretta - luciana@inf.ufg.br INSTITUTO DE
INFORMTICA
UFG

Boundary-Fill

Parmetros de entrada:
Um ponto (x,y) do interior do polgono
Cor da sua borda
Posies vizinhas do ponto (x,y) so testadas:
Se no for a cor da borda o ponto pintado com a cor de preenchimento,
at que todos os pixels do polgono tenham sido testados.
Computao Grfica
Luciana de Oliveira Berretta - luciana@inf.ufg.br INSTITUTO DE
INFORMTICA
UFG

Boundary-Fill

H duas alterna tivas comuns para conectividade entre pares de


pixels.
Um pixel possui vizinhana-4 se apenas os quatro vizinhos
horizontais e verticais so considerados.
Um pixel possui vizinhana-8 se ele possui vizinhana-4 e ainda os
quatro vizinhos diagonais so considerados.