Olhando para o desenho o que vemos? Cinco circunferências, com o mesmo raio, a mesma espessura do traço, mas cores e posições diferentes. A pergunta que devemos fazer é: se eu souber desenhar uma circunferência com um dado raio, espessura, cor e posição tenho a vida facilitada para desenhar as cinco? Claramente. Vamos então meter mãos à obra, resolvendo o problema de um modo geral para podermos posteriormente usar para as cinco situações diferentes. Podemos começar por esquecer vários dos atributos que devemos considerar e pensar apenas em desenhar uma circunferência com um dado raio. Simples, certo?
def circunferência(raio): turtle.circle(raio)Acrescentemos agora a posição.
def circunferência(posx, posy,raio):
# Posição
turtle.penup()
turtle.goto(posx, posy)
turtle.pendown()
# Desenha
turtle.circle(raio)
Procedendo de igual modo para os outros atributos chegamos à versão final completa.
def circunferencia(posx, posy, cor, raio, espessura):
# Define atributos
turtle.penup()
turtle.goto(posx, posy)
turtle.pendown()
turtle.pencolor(cor)
turtle.width(espessura)
# Desenha e Esconde tartaruga
turtle.circle(raio)
turtle.hideturtle()
Este programa permite desenhar uma circunferência podendo ser controladas a posição, o raio, a cor e a espessura. Fica por fazer dispor cinco circunferências em posições precisas. A figura que se segue ajuda-nos nos cálculos.
Assim se a posição da circunferência central da linha de cima for (x,y) as coordenadas das restantes são: cima, à direita: (x+ 2*raio + delta, y) cima, à esquerda: (x - 2*raio - delta,y) baixo, à direita: (x + raio + delta/2, y - raio) baixo, à esquerda: (x - raio - delta/2, y - raio) Daí a parte que falta para a solução:
def olimpo(x,y,raio, espessura, delta):
circunferencia(x,y, 'black', raio, espessura)
circunferencia(x+2*raio+ delta, y, 'red', raio, espessura)
circunferencia(x-2*raio-delta, y, 'blue', raio, espessura)
circunferencia(x+raio+(delta/2), y-raio, 'green', raio, espessura)
circunferencia(x-raio-delta/2, y-raio, 'yellow', raio, espessura)
if __name__ == '__main__':
aneis(0,0,50, 3, 5)
turtle.exitonclick()



Sem comentários:
Enviar um comentário