Sobre

Sistemas L (Lindenmayer Systems)

Sistemas L, ou sistemas de Lindenmayer, são gramáticas formais usadas para modelar processos de crescimento, especialmente de plantas e organismos biológicos. Foram desenvolvidos por Aristid Lindenmayer em 1968.

Algoritmo Principal

Um sistema L consiste de:

  1. Axioma: String inicial
  2. Regras de Produção: Regras de substituição
  3. Interpretação: Como desenhar a string resultante

Exemplo: Árvore Fractal

Axioma: F

Regra: F → FF+[+F-F-F]-[-F+F+F]

Interpretação:

  • F: Move para frente e desenha
  • +: Rotaciona à direita
  • -: Rotaciona à esquerda
  • [: Salva estado (push)
  • ]: Restaura estado (pop)

Equações Implementadas

No código:

  1. Geração: Aplica as regras iterativamente

    nextSentence = ""
    for each char in sentence:
        if char matches a rule:
            nextSentence += rule.replacement
        else:
            nextSentence += char
  2. Desenho: Interpreta a string como comandos de turtle graphics

    for each char in sentence:
        if char == 'F': drawLine(length)
        if char == '+': rotate(angle)
        if char == '-': rotate(-angle)
        if char == '[': saveState()
        if char == ']': restoreState()

Complexidade de Compreensão

Nível: Intermediário

  • Conceitos necessários: Gramáticas formais, recursão, turtle graphics
  • Matemática: Álgebra básica, geometria 2D, transformações
  • Programação: Manipulação de strings, pilhas (stack), transformações de coordenadas

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.

7quadros