
São rosas senhor... Controlar uma tartaruga e a sua caneta não é difícil. O problema neste caso, tem a ver mais com a capacidade para gera uma pétala geometricamente perfeita. O programa que se segue mostra como. Fica o aviso: se são conhecermos os comandos, claro que é muito difícil!
01.
def
petala(pos,angulo,tamanho, amplitude):
02.
""" Desenha pétala em pos com inclinação angulo e dimensão tamanho."""
03.
#prepara
04.
cTurtle.up()
05.
cTurtle.goto(pos)
06.
cTurtle.setheading(angulo)
07.
cTurtle.hideturtle()
08.
raio
=
tamanho
*
math.sin(math.radians(amplitude)
/
2.0
)
09.
cTurtle.down()
10.
# cor
11.
cTurtle.colormode(
255
)
12.
r
=
random.randint(
0
,
255
)
13.
g
=
random.randint(
0
,
255
)
14.
b
=
random.randint(
0
,
255
)
15.
cTurtle.fillcolor(r,g,b)
16.
# desenha
17.
cTurtle.fill(
True
)
18.
cTurtle.forward(tamanho)
19.
cTurtle.setheading(cTurtle.heading()
+
amplitude
/
2.0
)
20.
cTurtle.circle(raio,
180
)
21.
cTurtle.goto(pos)
22.
cTurtle.fill(
False
)
Então como fizemos? Começamos por preparar a tartaruga, posicionando-a no sítio certo e com a devida inclinação (linhas 4 a 9). De seguida tratamos dos problemas de cor, gerando a dita aleatoriamente e indicando com queremos preencher o objecto gerado com a cor (linhas 10 a 15). Passamos por fim à fase de desenho (linhas 16 a 22). A pétala é construída com dois segmentos formando entre si o ângulo pedido, e um arco de circunferência de 180 graus a unir as suas extremidades afastadas. Atente-se na necessidade de reposicionar a direcção da tartaruga, antes de desenhar o arco, para que a pétala tenha uma forma simétrica.
O meu prog é diferente.. Uma questao de gosto, na verdade, mas pus a tartaruga a andar de forma contínua(em vez de a "virar")..
ResponderEliminardef petala(pos, size, ori, angl, cor):
cTurtle.up()
cTurtle.fillcolor(cor)
cTurtle.goto(pos)
cTurtle.setheading(ori)
cTurtle.right(angl/2)
cTurtle.down()
cTurtle.fill(True)
cTurtle.forward(size)
cTurtle.circle(size*(math.tan(math.radians(angl/(2.0)))), 180+angl)
cTurtle.forward(size)
cTurtle.fill(False)
cTurtle.up
Funciona sim senhor. Boa! Quanto à continuidade é tudo, como diz, uma questão de gosto... já que a re-orientação da tartaruga podia ser feita dentro do comando do círculo.
ResponderEliminar