domingo, 18 de outubro de 2009

Problema 3.6

O módulo cTurtle permite controlar uma tartaruga e a sua caneta que se movimentam numa tela.Em relação à caneta podemos levantá-la (up()) ou baixá-la (down()). Em relação à tartaruga podemos fazer várias coisas: torná-la visível (showturtle()) ou invisível (hideturtle()), controlar a sua orientação (setheading(angulo)), posicioná-la na tela (goto(pos)), entre outras coisas. Podemos ainda fazê-la caminhar para a frente (fiorward(valor)) ou para trás (backward(valor)), rodar para a direita (right(valor)) ou para a esquerda (left(valor)). Para conhecer tudo deve-se importar o módulo e inspeccionar o seu conteúdo com os comandos dir(cTurtle) e com help(cTurtle.nome_do_comando) .


Com comandos tão simples é possível fazer muitos desenhos e animações. Vejamos como se desenha uma espiral semelhante à da figura.






Para isso vamos definir uma função que desenha um quadrado com o canto inferior esquerdo numa dada posição, com uma orientação inicial bem definida e com um certo comprimento para o lado. uma vez isso concretizado, é fácil desenhar a espiral desenhando sucessivos quadrados em que o lado vai aumentando e o mesmo se passando com a orientação inicial.

01.import cTurtle
02. 
03.def quadrado(lado,pos, angulo):
04."""
05.Desenha um quadrado com o comprimento de lado, o vértice inferior
06.esquerdo em pos e  direção inicial angulo.
07."""
08.# Preparação
09.cTurtle.up()
10.cTurtle.goto(pos)
11.cTurtle.setheading(angulo)
12.cTurtle.down()
13. 
14.# desenha quadrado
15.for conta in range(4):
16. cTurtle.forward(lado)
17. cTurtle.right(90)
18.cTurtle.hideturtle()
19. 
20.def espiral(num_quad, lado_inic, incr_lado, pos, angulo_inic, incr_angulo):
21."""
22.Desenha uma espiral de quadrados.
23."""
24.lado = lado_inic
25.angulo = angulo_inic
26.for i in range(num_quad):
27. quadrado(lado, pos, angulo)
28. lado = lado + incr_lado
29. angulo = angulo + incr_angulo
30. 
31. cTurtle.mainloop()


Descubra o modo como se alterou a cor. Pode também alterar, por exemplo, a forma da tartaruga, a velocidade a que o desenho é feito, e muitas mais coisas.

Sem comentários:

Enviar um comentário