2.4. Gazi Üniversitesi Görsel İletişim Tasarımı Bölümü
2.4.3. Gazi Üniversitesi Görsel İletişim Tasarımı Bölümü “Sanat Tarihi Dersi”
Nesta seção, iremos apresentar superficialmente os comandos LOGO, na ferramenta FMSLogo, inerentes à construção de figuras planas. Esta abordagem mínima será suficiente para compreensão da linguagem. Para saber mais detalhes sobre o manuseio FMSLogo, con- sulte o pequeno tutorial disponível no Apêncide A deste trabalho.
Para um primeiro contato, abra o FMSLogo e digite na linha de comandos, ao lado do botão executar: PARADIREITA 45 PARAFRENTE 100, ou simplesmente, PD 45 PF 100 e tecle Enter. Com isso, o cursor do FMSLogo irá girar 45o no sentido horário (à direita) e
desenhar um segmento de reta de tamanho igual a 100 passos (pixels). Os comandos PD e PF são abreviaturas de PARADIREITA E PARAFRENTE, essas abreviaturas facilitam bastante a escrita dos comandos.
O comando PD X faz o cursor girar X graus no sentido horário, enquanto PF X move o cursor para desenhar um segmento de reta de tamanho X. Para limpar a tela use o comando TAT.
Agora, escreva a seguinte sequência de comandos, da esquerda para direita:
PF 100 PD 90 PF 100 PD 90 PF 100 PD 90 PF 100 PD 90
O FMSLogo desenhará um quadrado.
Note que o bloco, PF 100 PD 90, se repete 4 vezes, nessas condições, podemos utilizar o comando REPITA. O mesmo quadrado pode ser construído através dos comandos REPITA 4 [PF 100 PD 90], o que significa: “repita 4 vezes os comandos parafrente 100 paradireita 90”. Muito bem, será que o LOGO só desenha linhas retas? Não! Partindo do princípio que uma circunferência tem 360o, podemos desenhá-la repetindo 360 vezes o comandoPF 1 PD 1(mover um passo e girar um grau), logo, digitandoREPITA 360 [PF 1 PD 1]o programa
Figura 5.2 Segmento de reta gerado pelos comandos PD 45 PF 100
Fonte: Autoria própria.
Figura 5.3 Quadrado desenhado com a sequência de comandos
Fonte: Autoria própria.
desenhará uma circunferência4.
Podemos ainda aninhar diversos comandosREPITA(repita dentro de outro). Vejamos dois
exemplos de aninhamento do REPITA (fig. 5.4):
1. REPITA 10 [REPITA 360 [PF 1 PD 1] PD 36]
2. REPITA 8 [PD 45 REPITA 6 [REPITA 180 [PF 1.3 PD 1] PD 90]]
5.1.2.1. O comando APRENDA
Na linguagem LOGO podemos criar novos comandos e operações (rotinas ou procedimen- tos) de uma forma bastante simples. O bloco de comandos necessários para se construir um
4Na verdade, este comando constrói um polígono regular de 360 lados. Porém, a figura obtida é visualmente
Figura 5.4 Resultados dos comandos com aninhamentos do REPITA
(a) Resultado do comando 1 (b) Resultado do comando 2 Fonte: Autoria própria.
quadrado poderia, por exemplo, ser encapsulado em um procedimento chamado QUADRADO. Inicialmente, se o usuário digitar QUADRADO na linha de comandos, o FMSLOGO mostra a seguinte mensagem: “não sei como fazer QUADRADO”, isto significa que este comando não foi definido. Para criar uma nova rotina clique no botão EdTudo (abreviatura de Edite Tudo). Na janela que aparece digite o comando conforme a fig. 5.5.
Figura 5.5 Janela com a edição do comando QUAD
(a) Janela de edição de comandos (b) Executando a nova rotina QUADRADO Fonte: Autoria própria.
Ao final, vá até o menu arquivo desta janela e clique em Guardar e Sair. Digite QUA- DRADO, na linha de comandos, e tecle enter para ver o resultado. Vale destacar que este novo comando QUADRADO é muito estático. Ele não é capaz de desenhar quadrados de lado 50, 200, por exemplo. O comando QUADRADO ficaria melhor se ao escrever QUADRADO X, o LOGO desenhasse um quadrado de lado X, assim como PD X faz o cursor girar X graus. Va- mos melhorar o comando QUADRADO; para isso clique no botão EdTudo e redefina a rotina
da seguinte forma:
APRENDA QUADRADO :LADO REPITA 4 [PF :LADO PD 90] FIM
A rotina QUADRADO agora tem um parâmetro/variável chamado :LADO, isso permite que o usuário digite QUADRADO e um valor que será a medida do lado do quadrado. Salve as alterações indo até menu arquivo e clique em Guardar e Sair. Em seguida vamos testar a rotina QUADRADO, digitando os seguintes comandos:
1. QUAD 40 QUAD 80 QUAD 120.
2. REPITA 120 [QUAD CONTEVEZES PD 3]
No primeiro exemplo, o LOGO desenha três quadrados de lado 40, 80 e 120. No segundo exemplo serão feitos 120 quadrados com um giro de 3 graus. O palavra reservada CONTE- VEZES indica a quantidade de execuções do REPITA, isto é, na primeira repetição, CONTE- VEZES = 1, na segunda CONTEVEZES = 2, e assim sucessivamente. Veja os resultados dos comandos na fig. 5.6.
Figura 5.6 Resultados dos comandos
(a) Primeiro resultado (b) Segundo resultado Fonte: Autoria própria.
5.1.2.2. Alguns fractais feitos no LOGO
Uma rotina chama-se recursiva, quanto ela executa a si mesma. Vejamos a definição de uma rotina recursiva, usando o comando APRENDA, para construção da curva de Koch. No estudo do capítulo 3, vimos que os processos de formação dos fractais são recursivos, ou seja, no nível seguinte, são executados exatamente os mesmos passos nas partes menores. Para facilitar o raciocínio da escrita dos comandos recursivos, seja KOCH :N :TAM, a rotina que constrói
uma curva de koch de nível :N iniciando com um segmento de tamanho :TAM. A seguir, vamos acompanhar a sequência dos os níveis de uma curva de koch, com segmento inicial de medida 300, mostrando em seguida, uma possível especificação dos comandos da rotina KOCH que constrói a curva:
Figura 5.7 Estrutura da curva de Koch
Fonte: Autoria própria. (Utilizando o CorelDraw e o Paint)
1. Koch nível 0:
Chamada da rotina: KOCH 0 300
Comandos da rotina KOCH para desenhar o nível 0;
APRENDA KOCH :N :TAM SE :N = 0 [PF :TAM] FIM
2. Koch nível 1:
Chamada da rotina: KOCH 1 300
Considerando a estrutura da curva no nível 1 (fig. 5.7), os comandos necessários construí- la seriam:
APRENDA KOCH :N :TAM
KOCH 0 :TAM/3 PE 60 ;primeiro segmento, tamanho 300 3 = 100
KOCH 0 :TAM/3 PD 120 KOCH 0 :TAM/3 PE 60 KOCH 0 :TAM/3
FIM
Note que na execução de KOCH 1 300, o valor de :TAM é 300, mas internamente temos :TAM/3, e com isso, nas chamadas internas, o tamanho inicial diminui para 3003 = 100
3. Koch nível 2:
Chamada da rotina: KOCH 2 300.
A curva de nível 2 tem quatro curvas de nível 1, para este nível, os comandos seriam:
APRENDA KOCH :N :TAM
KOCH 1 :TAM/3 PE 60 KOCH 1 :TAM/3 PD 120 KOCH 1 :TAM/3 PE 60 KOCH 1 :TAM/3
FIM
Observe que a execução de KOCH 2 300 faz 4 chamadas de KOCH 1 100, e cada execução de KOCH 1 100, executa KOCH 0 100/3 4 vezes, isto é, executando KOCH 2 300, equivale a 42 chamadas da rotina KOCH com :N = 0 e :TAM = 300
3 ·13 = 30032 .
Portanto, um olhar mais minucioso nos permite concluir que cada execução de KOCH :N :TAM, faz 4 chamadas de KOCH :N-1 :TAM/3.
4. Koch nível k:
Diante do exposto, podemos generalizar o algoritmo da rotina KOCH da seguinte forma:
Figura 5.8 Execução: rotina KOCH (Nível 4)
APRENDA KOCH :N :TAM
SE :N = 0 [PF :TAM PARE] KOCH :N-1 :TAM/3 PE 60 KOCH :N-1 :TAM/3 PD 120 KOCH :N-1 :TAM/3 PE 60 KOCH :N-1 :TAM/3 FIM