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