Primeira vez aqui? Seja bem vindo e cheque o FAQ!
x

Replicar a Figura 5.6 do Livro he Algorithmic Beauty of Plants by P. Prusinkiewicz and A. Lindenmayer, p 124.

0 votos
153 visitas
perguntada Dez 15, 2020 em Programação Computacional por Fernando Fellows (16 pontos)  
editado Dez 18, 2020 por Fernando Fellows
Compartilhe

1 Resposta

0 votos
respondida Dez 15, 2020 por Fernando Fellows (16 pontos)  
 
Melhor resposta

O sistema de Lindenmayer, também conhecido como L System, é um algoritmo útil para replicar figuras botânicas e fractais, devido à natureza de auto-similaridade das figuras, cada parte pode ser interpretada como uma representação menor do inteiro. O sistema L utiliza um alfabeto de símbolos e funções recursivas que utilizam uma cadeia de caracteres. Como apresentado no livro The Algorithmic Beauty of Plants, o L System pode ser desenhado de forma a modelar crescimento de sistemas biológicos, contendo instruções (rules) para o crescimento de células até organismos completos.

Vale elencar alguns comandos de alta recorrência em L Systems:
+: girar para a esquerda a determinados graus
-: girar a direita '' ''
[: salvar estado anterior
]: voltar ao último estado salvo.

A figura a ser representada encontra-se abaixo.

A imagem será apresentada aqui.
As regras de ordenação são as seguintes:

ω : [A][B]
p1 : A → [+A{.].C.}
p2 : B → [-B{.].C.}
p3 : C → GC

O código utilizado para replicar a figura foi utilizado no Processador L System.

lsystem Leaf extends StdLsystem {

    set symbols axiom = G(100, 4, #000000) [ a ] [ b ];
    set iterations = 15;
    set initialAngle = 90;

    rewrite a to [ +(10) a <(#009900) . ] . c . >;
    rewrite b to [ -(10) b <(#009900) . ] . c . >;
    rewrite c to G(20, 2, #005500) c;
}

process all with SvgRenderer;

O resultado é:

A imagem será apresentada aqui.

comentou Dez 18, 2020 por danielcajueiro (5,581 pontos)  
Acho que essa sua solução não responde ao problema.
...