Desafio 12

ld repita 45 [pf 2*cv pe cv pf 2*cv pd 90] repita 45 [pf 2*cv pd 90 pf 2*cv pd 90] xLogo: ld dt logo3d inicielinha repita 180 [pf 8 * raizq cv pe 45 baixenariz 1 ] terminelinha

   Uma espiral poderia ser definida como uma curva que gira ao redor de um centro, seja no plano, seja no espaço.

   Como é difícil entender as definições matemáticas em palavras, em símbolos e equações... Imagens facilitam o entendimento. A compreensão pode ser alcançada com a linguagem Logo ao explorar as propriedades de diferentes espirais.

   A figura ao lado pode ser desenhada como uma sucessão de "avance tantospassos e gire 90 graus". Em Logo, seria algo como parafrente 25 pe 90.

   Mas, à medida que a Tat avança, ela deve dar mais passos, se afastando do centro.

   Isso pode ser resolvido combinando a primitiva repita com um contador (felizmente, a maioria dos programas Logo possuem uma primitiva para contar).

Espiral quadrada
Considero a espiral quadrada mais fécil de entender e desenhar!
MegaLogo
repita 6 [
pf contador*25 ge 90
pf contador*25 ge 90]
Imagine
repetir 6 [
pf contador*25 ge 90
pf contador*25 ge 90]
SuperLogo, FMSLogo e xLogo
repita 6 [
pf contevezes*25 pe 90
pf contevezes*25 pe 90]
Micromundos
façavezes [i 6] 
[pf :i * 25 pe 90 pf :i*25 pe 90]
]

   No modelo acima, o que fizemos foi desenhar meio quadrado repetidas vezes. Cada vez que desenhávamos a próxima metade, aumentávamos os passos da Tat.
   Experimente retirar os comandos repetidos. Continuaremos obtendo espiral com cada lado do quadrado menor do que o seguinte. Essa nova estrutura pode ser aproveitada para fazer outros tipos de espirais (triangulares, pentagonais, etc.). Bastará tomar cuidado para acertar o ângulo que a Tat deverá girar em cada nova situação.
   Agora, por um processo parecido, podemos pensar em espiral curva, desenhando meio círculo. Se um círculo completo seria algo como repita 360 [pf 1 pe 1], o meio círculo será repita 180 [...].
   Para desenhar 4 metades de círculos seguidos, teremos: repita 4 [repita 180 [pf 1 pe 1]].
Mas no nosso caso, precisamos que para cada meio círculo completado, aumente-se os passos da Tat. Então, repita 4 [atr "x cv repita 180 [pf :x pe 1]].

espiral em círculosespiral em círculos

A espiral abaixo está comentada no Blog TIEd (a figura é animada para quem usa navegador que suporta png animado)

Espiral


    Saiba mais em:
Espirais Gostei
Espiral na Wikipedia
Espirais (em alemão)