Baixe o app para aproveitar ainda mais
Prévia do material em texto
Instituto de Matemática Departamento de Matemática Pura e Aplicada MAT01343 – Computador na Matemática Elementar I Professora: Márcia Rodrigues Notare Meneghetti Animações no SuperLogo Antes de pensarmos em como fazer uma animação, vejamos o que está por trás de uma animação. Nos desenhos animados que se vê na televisão e no cinema, para compor uma animação, são feitos vários desenhos, cada um correspondendo a um movimento do que se deseja animar. Em seguida, estes desenhos são mostrados um a um, com um intervalo de tempo muito pequeno entre um e outro. É exatamente este princípio que utilizamos no SuperLogo para fazer animações. Vejamos um exemplo: Vamos construir um cata-vento animado. 1º Passo: Construir a figura que queremos animar. Um possível procedimento que desenhe esta figura é o seguinte: aprenda catatri repita 3 [triangulo pd 120] fim aprenda tri pf 100 pd 150 pf (100/sen 110)*sen 40 pd 70 pf (100/sen 110)*sen 30 pd 140 fim 2º Passo: Animação Utilizaremos o seguinte princípio de animação: Fazer a figura Esperar um período de tempo Apagar a figura Mudar a posição da tat Esta sequência será repetida quantas vezes quisermos. Vamos criar um procedimento que faça esta sequência 20 vezes: aprenda ventilador dt repita 20 [catatri espere 5 ub catatri ul pd 20] at fim Note que para apagar a figura, usamos ub catatri ul (ou seja, ela passará sobre a figura novamente, mas usando borracha), pois se usarmos o comando tat, a tat poderá voltar à posição inicial, e não queremos que isso aconteça! Execute este procedimento e veja o resultado! Veja que, ao fazer a mudança de posição da tat, podemos mandá-la para qualquer lugar da Janela Gráfica! Vamos incrementar um pouco? Note que o período de espera está fixo: 5/60 = 1/12 segundo! Podemos fazer com que este período seja variável. Para isso, introduzimos a entrada :t, que corresponderá ao tempo de espera: aprenda ventilador2 :t dt repita 20 [catatri espere :t ub catatri ul pd 20] at fim Agora, temos controle sobre a velocidade de giro do cata-vento, isto é, sobre a animação! Note que, como está, a tat repete um número limitado de vezes a sequência desenhar esperar apagar mudar posição. Poderíamos colocar um número bem grande no comando repita ou colocar esta repetição em um procedimento iterativo (ou recursivo) cuja condição de parada nunca seja satisfeita, para não termos a preocupação de pensar qual número seria ideal para colocar no comando repita. Por exemplo: aprenda ventilador3 :t dt atr "i 1 enquanto [:i>0] [catatri espere :t ub catatri ul pd 20 atr "i :i+1] fim Veja que o valor inicial de :i é 1 e :i aumenta de 1 em 1. Como a condição de parada é enquanto :i>0, ela nunca será satisfeita e a tat nunca vai parar! Outras maneiras seriam: aprenda ventilador4 :t dt atr "i 1 atéque [:i<0] [catatri espere :t ub catatri ul pd 20 atr "i :i+1] fim ou aprenda ventilador5 :t :i dt catatri espere :t ub catatri ul pd 20 se :i<0 [pare] ventilador5 :t :i+1 fim Neste último procedimento, para que a condição de parada nunca seja satisfeita, basta, ao executar o procedimento, colocar, no lugar de :i, 0 ou qualquer número positivo. Vamos ficar com a primeira forma, usando o comando enquanto. Vamos incrementar um pouco mais? Como a entrada :t está ligada à velocidade da animação, poderíamos substituí-la, introduzindo a entrada :v, que corresponderá à velocidade do giro. Queremos mais: que, ao executar o procedimento, ao invés de colocar um número no lugar da entrada :v, coloquemos as palavras lenta, média ou rápida. Como fazer isso? No SuperLogo, uma variável não precisa ser necessariamente um número, pode ser uma palavra, desde que ao executar o procedimento, esta palavra esteja entre colchetes ou depois de duas aspas (lembre do comando rotule, onde o que queremos rotular deve estar entre colchetes ou, se for uma única palavra, dever ter duas aspas antes). Vamos fazer um procedimento novo, onde cada palavra (lenta, média ou rápida) será associada a um :t diferente: aprenda ventilador6 :v dt se :v=[lenta] [atr "t 20] se :v=[média] [atr "t 10] se :v =[rápida] [atr "t 5] atr "i 1 enquanto [:i>0] [catatri espere :t ub catatri ul pd 20 atr "i :i+1] fim ou aprenda ventilador7 :v dt se :v="lenta [atr "t 20] se :v="média [atr "t 10] se :v ="rápida [atr "t 5] atr "i 1 enquanto [:i>0] [catatri espere :t ub catatri ul pd 20 atr "i :i+1] fim Ao executar estes procedimentos, na Janela de Comandos, você deve digitar: ventilador6 [lenta] ou ventilador7 “lenta ventilador6 [média] ou ventilador7 “média ventilador6 [rápida] ou ventilador7 “rápida Execute estes procedimentos e divirta-se!
Compartilhar