next up previous contents
Next: Atividade Up: As variáveis Previous: Desenhar um retângulo de   Contents

Desenhar uma forma com diferentes dimensões

Retomando o exemplo da casa no Capítulo 1, vejamos como alterar o código de modo que aprenda a desenhá-la em ordem com quaisquer dimensões.

O objetivo é colocar um argumento no procedimento casa para que de acordo com o parámetro, a casa ou seja maior ou seja menor. Desejamos que casa 10 desenhe a casa do Capítulo 1.
casa 5 desenhará uma casa na escala 0,5.
casa 20 desenhará uma casa com dimensões duas vezes maior, etc.

A noção de proporcionalidade é certamente subjacente. Sobre o desenho, do capítulo 1, um quadrado representa 10. O procedimento quadrado era assim:
aprenda quadrado 
repita 4[pf 150 pd 90]
fim
Agora deverá ficar assim:
aprenda quadrado :c
repita 4[pf 15*:c pd 90]
fim
Assim, ao escrever quadrado 10, o quadrado terá lado $ 15\times10=150$ . As proporções serão bem respeitadas! Com efeito, apercebe-se-se que vai exatamente ser necessário retomar todos os procedimentos e alterar os comprimentos de deslocamento como segue.
70 tornar-se-á 7*:c
pf 45 tornar-se-á pf 4.5*:c
etc

De modo mais simples, bastará contar o número de quadrículas para cada comprimento! Assim, teremos:
aprenda quadrado :c
repita 4 [pf 15*:c  pd 90]
fim

aprenda tri :c
repita 3 [pf 15*:c pd 120]
fim

aprenda porta :c
repita 2 [pf 7*:c pd 90 pf 5*:c pd 90]
fim

aprenda chamine :c
pf 5.5*:c pd 90 pf 2*:c pd 90 pf 2*:c
fim

aprenda dep1 :c
pd 90 pf 5*:c pe 90
fim

aprenda dep2 :c
pe 90 pf 5*:c pd 90 pf 15*:c pd 30
fim

aprenda dep3 :c
lc pd 60 pf 2*:c pe 90 pf 3.5*:c bc
fim

aprenda casa :c
quadrado :c dep1 :c porta :c dep2 :c tri :c dep3 :c chamine :c
fim

next up previous contents
Next: Atividade Up: As variáveis Previous: Desenhar um retângulo de   Contents
alex 2006-06-18