Figuras fractais geradas
por gramáticas formais
O que começa por ver é um «show» com as primeiras iterações de vários algoritmos que geram figuras fractais com base em gramáticas formais. Quando acabar o «show», experimente carregar no botão «Iterar» para ver uma planta «em desenvolvimento». O «show» pode ser interrompido carregando no botão da direita, que inicialmente tem um P (de Parar) e pode ser reiniciado premindo o mesmo botão quando ele tem um S. Cada vez que uma nova linha é desenhada, evolui numa direcção que faz um ângulo com a anterior, com um valor escolhido aleatoriamente e alternadamente positivo e negativo. Por exemplo, se o ângulo seleccionado for +45º, o valor do ângulo ficará alternadamente entre (0º e +45º) e (0º e -45º). Se clicar sucessivamente no botão «+», pode ver a mesma planta desenhada usando novos valores aleatórios. Se clicar no botão «determinístico», o valor do ângulo passa a ser exactamente de + ou - 45º. O ângulo usado pode ser alterado no campo seguinte, à direita de âng, onde inicialmente se lê o valor «45», para o programa Planta1f. O outro botão permite ver o desenho a uma só cor. Experimente seleccionar «cadeia» para ver a cadeia de comandos que está a ser utilizada para desenhar a planta em cada iteração (no botão passará a ficar escrito «normal»; se o clicar de novo, voltará a ficar em cadeia» e deixará de se ver a geração da cadeia. ) (Usando o selector da direita, pode seleccionar outros programas interessantes) O primeiro programa - Planta1f - é feito usando uma «tartaruga» que avança do modo estipulado na sua cadeia de instruções. Em cada iteração aplica-se um conjunto de regras de substituição para ir modificando essa cadeia. É o que se chama uma gramática formal para gerar cadeias de caracteres. As regras usadas são as seguintes: 0 -»
1 [+0] 1 [-0] 0 O 0 corresponde a desenhar um círculo. O 1 corresponde a dar um passo em frente. O + e - correspondem a somar ou subtrair o ângulo seleccionado. O [ corresponde a guardar a posição actual para se poder voltar a ela quando é executado o ] correspondente. |
| Usando o selector da direita, pode seleccionar os outros programas. As regras e cadeias iniciais respectivas são as seguintes: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (*) neste caso, o ângulo
muda de sinal em cada iteração para que os triângulos
fiquem todos assentes sobre a base. Note que os comandos 6, 7, 8 e 9 não correspondem a nenhuma acção específica e são apenas usados para fazer evoluir as curvas; o comando x corresponde a dar um passo sem desenhar e os comandos a e b desenham ambos um passo. Os programas cujo nome termina em f são apenas versões em que o comando 0 insere uma «flor». Experimente alterar os valores dos ângulos e usar a opção «aleatório» nos programas que, por defeito, ficam na opção «determinístico».
|