Sobre

Árvore Fractal

Uma árvore fractal é uma estrutura recursiva onde cada ramo se divide em ramos menores, criando um padrão auto-similar que se assemelha a árvores naturais.

Algoritmo Principal

O algoritmo usa recursão para desenhar a árvore:

  1. Desenha um tronco (curva de Bézier)
  2. Se o comprimento é maior que um limite mínimo:
    • Cria dois novos ramos
    • Cada ramo tem 75% do comprimento do ramo pai
    • Cada ramo é rotacionado por um ângulo aleatório (±30°)
    • Recursivamente desenha os novos ramos
  3. Se o comprimento é menor que o limite, desenha uma folha (círculo)

Equações Implementadas

No código:

// Desenho do ramo usando curva de Bézier
bezierCurveTo(5, -length, 15, -length/2, 0, -length)

// Condição de parada
if (length < random() * 9) {
  // Desenha folha
  return;
}

// Criação de novos ramos
newTree = new Tree(0, -length, length * 0.75, angle + random() * 30, width)
newTree.draw()
newTree = new Tree(0, -length, length * 0.75, angle - random() * 30, width)
newTree.draw()

Complexidade de Compreensão

Nível: Intermediário

  • Conceitos necessários: Recursão, transformações geométricas, curvas de Bézier
  • Matemática: Geometria 2D, trigonometria, recursão matemática
  • Programação: Recursão, transformações de coordenadas, gráficos vetoriais

Referências e Recursos para Estudo

Artigos e Documentação

Tutoriais e Código

Aprofundamento Matemático

Visualizações Interativas

Arquivo do processo

Todas as gerações — incluindo as ruins — fazem parte do processo.

1quadros