Stochastic Plant
No livro “The Algorithmic Beauty of Plants”, de Przemyslaw Prusinkiewicz e Aristid Lindenmayer, mostra-se que a estrutura de uma árvore pode ser representada por meio dos chamados Context-Free Lindenmayer Systems, ou simplesmente Sistemas-OL.
Para descrever o padrão das florzinhas ou sementes de uma cabeça de girassol, Vogel propôs a fórmula:
φ = n∗137.5◦, r = c√n,
Onde:
--> n é o número de encomenda de uma florzinha do girassol, contando a partir do exterior para o centro. Este é o reverso da idade da flor em uma planta real.
--> φ é o ângulo entre uma direção de referência e o vector de posição da enésima florzinha em um sistema de coordenadas polares originado no centro do capitulo. Segue-se que o ângulo de divergência entre os vetores de posição de quaisquer duas florzinhas sucessivas é constante, α = 137,5◦.
--> r é a distância entre o centro do capítulo e o centro da enésima florada, dado um parâmetro de escala constante c.
O ângulo de divergência de 137,5◦ é muito mais difícil de explicar. Vogel deriva usando duas suposições. Cada florete novo é emitido em um ângulo fixo α em relação ao florete anterior. O vetor de posição de cada nova florzinha se encaixa na maior lacuna existente entre os vetores de posição das florzinhas mais velhas.
\[\]
# Código L-systems indentado:
lsystem SunflowerCore {
set symbols axiom = A(0);
set iterations = 700;
set continuousColoring = {#cccc00, 254, #007700};
interpret f as MoveForward;
interpret X as DrawCircle(10);
interpret + as TurnLeft(137.3);
rewrite A(n) to + f(n^0.5*25)X A(n+1);
}
process all with SvgRenderer;
Figura replicada do código acima rodado no Processador L-systems.

\[\]
# Código L-systems indentado:
lsystem SunflowerCore {
set symbols axiom = A(0);
set iterations = 700;
set continuousColoring = {#cccc00, 254, #007700};
interpret f as MoveForward;
interpret X as DrawCircle(10);
interpret + as TurnLeft(137.5);
rewrite A(n) to + f(n^0.5*25)X A(n+1);
}
process all with SvgRenderer;
Figura replicada do código acima rodado no Processador L-systems.

\[\]
# Código L-systems indentado:
lsystem SunflowerCore {
set symbols axiom = A(0);
set iterations = 700;
set continuousColoring = {#cccc00, 254, #007700};
interpret f as MoveForward;
interpret X as DrawCircle(10);
interpret + as TurnLeft(137.6);
rewrite A(n) to + f(n^0.5*25)X A(n+1);
}
process all with SvgRenderer;
Figura replicada do código acima rodado no Processador L-systems.
