Skip to content

felipesphair/FloodFill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 

Repository files navigation

Flood Fill

Preenchimento por inundação, também chamado de Flood fill ou seed fill, é um algoritmo de inundação que determina e altera a área conectada a um determinado nó em uma matriz multidimensional com algum atributo correspondente. No trabalho optamos por usar arrays para implementar o Flood fill pode ser mais simples e eficiente em termos de acesso direto aos elementos. Sendo útil quando você está trabalhando com uma estrutura de dados bidimensional(grid), onde os elementos estão organizados em linhas e colunas.

Como funciona pilha e fila? Quais as diferenças?

Pilha no Flood Fill:

•	Adiciona a última coordenada para explorar primeiro.
•	Flood fill em profundidade.

Wfm_floodfill_animation_stack

Fila no Flood Fill:

•	Adiciona a primeira coordenada para explorar primeiro.
•	Flood fill em largura.

Wfm_floodfill_animation_queue

Diferenças:

•	Pilha: Explora uma direção completa antes de mudar.
•	Fila: Explora todas as direções antes de avançar.

Como o código funciona?

Main.java: tem como função de iniciar a execução do programa e coordenar a interação com o usuário, permitindo a escolha de padrões e parâmetros para o algoritmo de Flood Fill.

PATH STRUCTURES:

Coordinate.java: é usada para armazenar as posições de linha e coluna em um formato fácil de acessar e usar.

GenericList.java: é uma interface que define métodos para adicionar, remover e verificar elementos em uma estrutura de dados genérica que armazena coordenadas.

Queue.java (fila):

implementa uma fila que armazena coordenadas (linha e coluna), permitindo a adição (enqueue) e remoção (dequeue) de elementos seguindo o conceito FIFO (primeiro a entrar, primeiro a sair).

fila

Stack.java (pilha):

A classe Stack implementa uma pilha que armazena coordenadas, permitindo a adição (push) e remoção (pop) de elementos seguindo a política LIFO (último a entrar, primeiro a sair).

pilha

PATH FILL:

Color.java: Definição das cores que irão aparecer na matrix.

FloodFill.java: altera valores de pixel a partir de uma posição inicial e propagando essas alterações usando uma estrutura de dados (pilha ou fila) para rastrear e processar os elementos.

Matrix.java: Definição da imagem escolhida, tendo como padrão outra caso a opção digitada for inexistente.

Exemplos de funcionamento

Resultado 1:

image

image

image

image

image

image

image

Resultado 2:

image

image

image

image

image

image

image

Resultado 3:

image

image

image

image

image

image

Resultado 4:

image

image

image

image

image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages