Desafio 10
Muitos continuam a procurar como fazer fractais no Logo. Por curiosidade? Pela Matemática? Pela beleza? Não sei.
Dessa vez, como fazer um dragão e a
curva C (ou de Lévy). O dragão é um dos mais simples fractais (o MegaLogo já vem com um de exemplo,
mas trago outras soluções).
MegaLogo para vai limpe dt gd 90 drago 200 12 fim
para drago :lado :nivel se :nivel = 0 [pf :lado pare] drago :lado * 0.707 :nivel - 1 gd 90 drago1 :lado * 0.707 :nivel - 1 fim
para drago1 :lado :nivel se :nivel = 0 [pf :lado pare] drago :lado * 0.707 :nivel - 1 ge 90 drago1 :lado * 0.707 :nivel - 1 fim | Imagine aprender vai pd 90 ul ot drago 200 12 fim
aprender drago :lado :nivel se :nivel = 0 [pf :lado parar] drago :lado * 0.707 :nivel - 1 gd 90 drago1 :lado * 0.707 :nivel - 1 fim
aprender drago1 :lado :nivel se :nivel = 0 [pf :lado parar] drago :lado * 0.707 :nivel - 1 ge 90 drago1 :lado * 0.707 :nivel - 1 fim |
SuperLogo aprenda vai tat dt pd 90 drago 200 12 fim
aprenda drago :lado :nivel se :nivel = 0 [pf :lado pare] drago :lado * 0.707 :nivel - 1 pd 90 drago1 :lado * 0.707 :nivel - 1 fim
aprenda drago1 :lado :nivel se :nivel = 0 [pf :lado pare] drago :lado * 0.707 :nivel - 1 pe 90 drago1 :lado * 0.707 :nivel - 1 fim | xLogo e Micromundos aprenda vai ld dt pd 90 drago 200 12 fim
aprenda drago :lado :nivel se :nivel = 0 [pf :lado pare] drago :lado * 0.707 :nivel - 1 pd 90 drago1 :lado * 0.707 :nivel - 1 fim
aprenda drago1 :lado :nivel se :nivel = 0 [pf :lado pare] drago :lado * 0.707 :nivel - 1 pe 90 drago1 :lado * 0.707 :nivel - 1 fim |
* Os
procedimentos são quase os mesmos entre os diferentes softwares.
* Que tal usar uma outra cor de lápis ou experimentar outros
níveis em drago 200 12 (de 12 para 10 ou
15, por exemplo) no procedimento vai?
Outra
forma de fazer a mesma coisa:
MegaLogo para drago :v :lado :dir verifica :v < 1 sev [parafrente :lado] sef [drago :v - 1 :lado 1 ~ gd 90 * :dir ~ drago :v - 1 :lado ( - 1 )] fim | Imagine aprender drago :v :lado :dir se :v < 1 [pf :lado] [ drago :v -1 :lado 1 gd 90*:dir drago :v -1 :lado (-1) ] fim |
SuperLogo aprenda drago :v :lado :dir senão :v < 1 [ parafrente :lado ] [ drago :v -1 :lado 1 pd 90*:dir drago :v -1 :lado (-1) ] fim | xLogo e Micromundos aprenda drago :v :sz :dir se :v < 1 [ parafrente :sz ] [ drago :v -1 :sz 1 pd 90*:dir drago :v -1 :sz (-1) ] fim |
Experimente drago 10 4 1 ou drago 10 1 1. Tendo um pouco mais de paciência, fiz drago 15 1 4 no xLogo.
O
fractal curva C pode ser escrito assim:
SuperLogo aprenda curva :lado :v senão :v < 0 [pf :lado] [curva :lado :v - 1 pd 90 curva :lado :v - 1 pe 90] fim Micromundos aprenda curva :lado :v sesenão :v < 0 [ pf :lado] [curva :lado :v - 1 pd 90 curva :lado :v - 1 pe 90] fim
| xLogo aprenda curva :lado :v se :v < 0 [pf :lado] [curva :lado :v - 1 pd 90 curva :lado :v - 1 pe 90] fim Imagine aprender curva :lado :v se :v < 0 [pf :lado] [curva :lado :v - 1 gd 90 curva :lado :v - 1 ge 90] fim
| MegaLogo para curva :lado :v verifica :v < 0 sef ~ [curva :lado :v - 1 ~ gd 90 ~ curva :lado :v - 1 ~ ge 90] sev [pf :lado] fim  Experimente curva 4 8 |
Curva C - Particularidades * Não esqueça que no Imagine, os
procedimento começam com "aprender" e não "aprenda". * O Micromundos usa "sesenão"
em vez de "se".
O Superlogo usa "senão". * Onde está escrito "pd"
e "pe", o
Megalogo e o Imagine exigirão "gd" e "ge". |
Saiba mais em:
The Fastest Turtle in the West [em
inglês]
Courbe du dragon [em
francês]
Fractals, Turtle Dragon Curves [em
inglês]