UnBParadigmas2024-2 / 2024.2_G2_Funcional_Hasktal

Inspirada no Haskell, Hasktal é um gerador e renderizador de fractais escrito em linguagem funcional, para fins puramente acadêmicos.
MIT License
3 stars 0 forks source link
cabal fractals functional-programming gloss haskell math stack

Hasktal

Disciplina: FGA0210 - PARADIGMAS DE PROGRAMAÇÃO - T01
Nro do Grupo (de acordo com a Planilha de Divisão dos Grupos): 02
Paradigma: Funcional

Alunos

Matrícula Aluno
21/1039288 Bruno Campos Ribeiro
21/1039297 Bruno Martins Valério Bomfim
20/2016462 Heitor Marques
21/1029352 Igor e Silva Penha
19/0057858 José Luís Ramos Teixeira
21/1029405 Leonardo Gonçalves Machado
20/2016767 Lucas Felipe Soares
20/0062379 Marcos Vinícius de Deus
20/2045268 Raquel T. Eucaria Pereira da Costa
21/2002907 Zenilda Pedrosa Vieira

Sobre

O projeto visa representar visualmente uma variedade de fractais gerados a partir de padrões repetitivos. Utilizando Haskell, serão desenvolvidos processos iterativos para criar diferentes tipos de fractais, explorando suas propriedades geométricas e características únicas derivadas de funções matemáticas específicas.

Mais informações sobre cada fractal podem ser encontradas no documento de descrição dos fractais desenvolvidos.

Screenshots

A tela inicial mostra a lista de fractais que foram desenvolvidos, conforme a Imagem 1. E a execução deles de forma geral é apresentado no Vídeo 1.


Imagem 1: Tela inicial com os fractais desenvolvidos
Fonte: Zenilda Vieira, 2024



Vídeo 1: Telas dos fractais desenvolvidos
Fonte: Raquel Eucaria, 2024

Instalação

Linguagens: Haskell
Tecnologias: Stack

  1. Instale o stack, o tutorial de instalação pode ser encontrado aqui.
  2. Clone o repositório
    git clone https://github.com/UnBParadigmas2024-2/2024.2_G2_Funcional_Hasktal.git
  3. No terminal, abra o diretório onde o arquivo hasktal.cabal esta localizado e execute:
    stack build
    stack run

Uso

A partir dessa tela, é possível aumentar as iterações clicando no botão com o símbolo de mais (+), gerando progressivamente a imagem do fractal. O usuário também pode reduzir o número de iterações utilizando o botão com o símbolo de menos (-). Para retornar ao menu inicial e selecionar outro fractal, basta clicar no botão "Voltar".


Vídeo 2: Exemplo de uso da interface
Fonte: Igor Penha, 2024

Vídeo

Clique aqui para ver o vídeo!

Participações

Apresente, brevemente, como cada membro do grupo contribuiu para o projeto. Nome do Membro Contribuição Significância da Contribuição para o Projeto (Excelente/Boa/Regular/Ruim/Nula) Comprobatórios (ex. links para commits)
Bruno Campos Ribeiro (1) Conceptor da ideia de produção de um trabalho com o tema: Fractais;
(2) Estudo individual, pesquisa e testes;
(3) Programação, desenvolvimento e aprimoramento do algoritmo de geração dos fractais Sierpinski Carpet e Square Pythagoras Tree;
(4) Auxílio no desenvolvimento do menu principal;
(5) Auxílio na padronização e estruturação da arquitetura do projeto;
(6) Apresentação da seção de "interface + fractal de Sierpinski Carpet" na produção do vídeo;
(7) Participação nas reuniões e discussões em equipe, colaborando com ideias e sugestões (via Teams e Telegram)
Exelente (3) Commit 5a97d7d
(3) Commit fd6dcce
(3) Commit 38af564
(4) Commit ad8ad5f
(5) Commit 93379bb
(5) Commit 111019e
(5) Commit dd9dde7
(6) Vídeo
Bruno Martins Valério Bomfim (1) Estudo individual, pesquisa e testes;
(2) Programação, desenvolvimento e aprimoramento do algoritmo de geração do fractal de Koch;
(3) Auxílio no desenvolvimento do menu principal;
(4) Auxílio na padronização e estruturação da arquitetura do projeto;
(5) Apresentação da seção de "interface + fractal de koch" na produção do vídeo;
(6) Participação nas reuniões e discussões em equipe, colaborando com ideias e sugestões (via Teams e Telegram)
Excelente (1) Commit 8344c64
(2) Commit 2b075e5
(3) Commit 355c7a5, Commit ed33c37
(4) Commit ad8ad5f
(5) Vídeo
Heitor Marques Programação do fractal Árvore de Pitágoras, documentação sobre fractal Árvore de Pitágoras e documentação sobre fractais Excelente Árvore de Pitágoras
Doc. Árvore de Pitágoras
Doc. fractais
Igor e Silva Penha (1) Programação, desenvolvimento e aprimoramento dos algoritmo de geração dos fractais Curva de Dragão (Heighway Dragon) e Triângulo de Sierpinski;
(2) Elaboração da interface inicial do trabalho;
(3) Padronização e estruturação da arquitetura do projeto;
(4) Participação nas reuniões e discussões em equipe, colaborando com ideias e sugestões (via Teams e Telegram);
(5) Revisão de código e documentação.
Excelente (1) Commit fe50623
(1) commit edfe80b
(2) & (3) Commit 66a94e7
(4) Vídeo
José Luís Ramos Teixeira Elaboração da interface inicial do trabalho, programação dos fractais Curva de Dragão (Heighway Dragon) e Triângulo de Sierpinski, revisão de código e documentação. Excelente Interface Inicial
Curva de Dragão
Descrição da Curva de Dragão
Triângulo de Sierpinski
Leonardo Gonçalves Machado Elaboração do código do fractal do Conjunto de Julia, ajustes na interface do fractal de Mandelbrot e documentação do fractal do Conjunto de Julia Excelente Lista de commits
Lucas Felipe Soares Programação dos fractais de mandelbrot e Julia, revisão de código, documentações, estudos acerca dos fractais, elaboração e ajuste da interface Excelente Commits e histórico do git como: Mandelbrot
Documentação Final
Marcos Vinícius de Deus Programação do fractal Árvore de Pitágoras, documentação, elaboração do roteiro e edição do vídeo da entrega Excelente Commits e histórico git
Doc. Árvore de Pitágoras
Roteiro do vídeo
Edição do vídeo
Vídeo
Raquel T. Eucaria Pereira da Costa Estudo/teste, Programação do Fractal de Koch e documentação Excelente Informações iniciais
Estudo/teste
Fractal Koch
Descrição Koch
Manual Instalação/Uso
Ajuste documentação
Zenilda Pedrosa Vieira Programação do fractal Árvore de Pitágoras de quadrados (Fractal Tree)
Programação do fractal Tapete de Siervinski (Siervinski Carpet)
Inclusão dos fractais na main
Formatação de layouts
Ajuda na escrita e formatação de tópicos do README e do documento de descricao dos fractais
Excelente Fractal Tree
Siervinsk Carpet
Fractais na main
Layouts
README.md
descricaoFractais.md

Outros

Quaisquer outras informações sobre o projeto podem ser descritas aqui. Não esqueça, entretanto, de informar sobre:

(I) Lições Aprendidas

(II) Percepções

(III) Contribuições e Fragilidades

(IV) Trabalhos Futuros

Fontes

  1. HASKELL. Documentação do Haskell. Disponível em: https://www.haskell.org/documentation. Acesso em: 02 de Novembro de 2024.
  2. Wikipedia. Fractal. Disponível em: https://pt.wikipedia.org/wiki/Fractal. Acesso em: 02 de Novembro de 2024.
  3. HASKELL STACK. Install and upgrade. Disponível em: https://docs.haskellstack.org/en/stable/install_and_upgrade/. Acesso em: 02 nov. 2024.
  4. Spirals, Snowflakes & Trees: Recursion in Pictures. Dispónivel em: http://learn.hfm.io/fractals.html. Acesso em: 06 de Novembro de 2024.