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.
A extensão de ramificação para L-Systems permite simular estruturas semelhantes a plantas, em vez de simples fractais.
Os L-systems permitem a definição de formas complexas através do uso de iteração. Eles usam uma linguagem matemática na qual uma cadeia inicial de caracteres é comparada com regras que são avaliadas repetidamente, e os resultados são usados para gerar geometria. O resultado de cada avaliação se torna a base para a próxima iteração da geometria, dando a ilusão de crescimento.
Stochastic plant é uma forma de escrever L-systems para demonstrar e experimentar as diferentes possibilidades de se gerar uma nova árvore por meio estocástico.
\[\]
# Código L-systems indentado:
fun randomize (number, maxDistance) {
return number + random(0, maxDistance) -random(0, maxDistance);
}
lsystem StochasticPlant {
let angle = 30;
let angleRandomness = 20;
let length = 10;
let lengthRandomness = 10;
set iterations = 7;
set initialAngle = 90;
set symbols axiom = F;
set tropismVector = {0, -1, 0};
set tropismCoefficient = 0.05;
rewrite F
to F[+F]F[-F]F weight 0.33
to F[+F]F weight 0.33
to F[-F]F weight 0.34;
interpret F as DrawForward(randomize(length, lengthRandomness));
interpret + as TurnLeft(randomize(angle, angleRandomness));
interpret - as TurnLeft(-randomize(angle, angleRandomness));
interpret [ as StartBranch();
interpret ] as EndBranch();
}
process StochasticPlant with SvgRenderer;
Figura replicada do código acima na primeira rodagem no Processador L-systems.:

Figura replicada do código acima na segunda rodagem no Processador L-systems.:

Figura replicada do código acima na terceira rodagem no Processador L-systems.:
