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!
def petala(pos,angulo,tamanho, amplitude):
""" Desenha pétala em pos com inclinação angulo e dimensão tamanho."""
#prepara
cTurtle.up()
cTurtle.goto(pos)
cTurtle.setheading(angulo)
cTurtle.hideturtle()
raio = tamanho * math.sin(math.radians(amplitude)/2.0)
cTurtle.down()
# cor
cTurtle.colormode(255)
r=random.randint(0,255)
g=random.randint(0,255)
b=random.randint(0,255)
cTurtle.fillcolor(r,g,b)
# desenha
cTurtle.fill(True)
cTurtle.forward(tamanho)
cTurtle.setheading(cTurtle.heading() + amplitude/ 2.0)
cTurtle.circle(raio,180)
cTurtle.goto(pos)
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