Anda di halaman 1dari 16

Computao Grfica

Preenchimento de reas
Aula 7 Prof. Esp. Danilo Augusto
daniloaugusto@gmail.com
Preenchimento de
reas
H duas abordagens bsicas para
preenchimento de reas:
algoritmos baseados em regies de
preenchimento (Boundary-Fill Algorithm e
Flood-Fill Algorithm)
Estes algoritmos so mais utilizados para o
preenchimento de regies irregulares com
fronteiras complexas. Muito utilizado em
softwares de desenho interativos.
Preenchimento de
reas
algoritmos baseados em linhas de
varredura (Scan-line Fill Algorithm);
Estes algoritmos so mais utilizados para
preenchimento de polgonos, crculos, e
outras figuras primitivas. Utiliza a estrutura
geomtrica para orientar a identificao de
pontos interiores.
Exemplo:
Cor de Preenchimento: Amarelo
Fronteira: Preto
Preenchimento de
Regies
Boundary-Fill Algorithm: faz o
preenchimento de uma regio a partir da
escolha de um ponto inicial interno at as
fronteiras determinadas por uma cor.
Preenchimento de
Regies
Flood-Fill Algorithm: faz o
preenchimento de uma regio a partir
da escolha de um ponto inicial interno
substituindo uma cor existente por uma
nova cor. Pode estar delimitado por
diferentes cores.
Exemplo:
Cor de Preenchimento: Amarelo
Cor existente: Branco
Preenchimento de
Regies
Estes algoritmos podem utilizar 4 ou 8
pontos vizinhos para detectar as reas
conectadas a serem preenchidas.
Preenchimento de
Regies
Cuidado ao identificar os
pontos!
Algoritmo Boundary-Fill
BoundaryFill4 ( x, y, corPreenc, corLimite)
corAtualobtemCor(x,y);
se corAtualcorLimite E corAtualcorPreenc ento
selecione (corPreenc);
ponto (x,y);
BoundaryFill4(x+1,y,corPreenc,corLimite);
BoundaryFill4(x-1,y,corPreenc,corLimite);
BoundaryFill4(x,y+1,corPreenc,corLimite);
BoundaryFill4(x,y-1,corPreenc,corLimite);
fim se;
Fim;
BoundaryFill4 ( 10, 20, AMARELO, PRETO)
BoundaryFill4 ( 11, 20, AMARELO, PRETO)
BoundaryFill4 ( 9, 20, AMARELO, PRETO)
BoundaryFill4 ( 10, 21, AMARELO, PRETO)
BoundaryFill4 ( 10, 19, AMARELO, PRETO)
Algoritmo Boundary-Fill
O algoritmo Boundary-Fill apresentado
utiliza exaustivamente a pilha interna
devido a recursividade. A cada ponto novo,
o procedimento chamado recursivamente
para os quatro pontos vizinhos (ou oito).
H mtodos alternativos que diminuem
a utilizao da pilha, fazendo o
preenchimento da linha atual e empilhando
apenas os pontos limites das linhas
superior e inferior que ainda no foram
preenchidos.

Anda mungkin juga menyukai