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?
1.
def
circunferência(raio):
2.
turtle.circle(raio)
1.
def
circunferência(posx, posy,raio):
2.
# Posição
3.
turtle.penup()
4.
turtle.goto(posx, posy)
5.
turtle.pendown()
6.
# Desenha
7.
turtle.circle(raio)
01.
def
circunferencia(posx, posy, cor, raio, espessura):
02.
# Define atributos
03.
turtle.penup()
04.
turtle.goto(posx, posy)
05.
turtle.pendown()
06.
turtle.pencolor(cor)
07.
turtle.width(espessura)
08.
# Desenha e Esconde tartaruga
09.
turtle.circle(raio)
10.
turtle.hideturtle()
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:
01.
def
olimpo(x,y,raio, espessura, delta):
02.
circunferencia(x,y,
'black'
, raio, espessura)
03.
circunferencia(x
+
2
*
raio
+
delta, y,
'red'
, raio, espessura)
04.
circunferencia(x
-
2
*
raio
-
delta, y,
'blue'
, raio, espessura)
05.
circunferencia(x
+
raio
+
(delta
/
2
), y
-
raio,
'green'
, raio, espessura)
06.
circunferencia(x
-
raio
-
delta
/
2
, y
-
raio,
'yellow'
, raio, espessura)
07.
08.
09.
if
__name__
=
=
'__main__'
:
10.
aneis(
0
,
0
,
50
,
3
,
5
)
11.
turtle.exitonclick()
Sem comentários:
Enviar um comentário