01.
def
quadrado_2(lado):
02.
"""Desenha um quadrado de lado lado.
03.
04.
"""
05.
conta
=
0
06.
while
conta <
4
:
07.
forward(lado)
08.
right(
90
)
09.
conta
=
conta
+
1
10.
11.
def
quadrado_3(lado):
12.
"""Desenha um quadrado de lado lado.
13.
14.
"""
15.
for
i
in
range(
4
):
16.
forward(lado)
17.
right(
90
)
Aqui o importante a reter é que é mais adequado usar o ciclo for: conhecemos quantas vezes vamos ter que executar o ciclo.
Mas podemos querer uma solução em que a posição e a orientação iniciais também possam ser variáveis. Esta questão resolve-se considerando esses elementos como parâmetros.
01.
def
quad(lado,xcor,ycor,orient):
02.
"""Desenha um quadrado em que o lado, a posição inicial e a orientação inicial podem variar.
03.
04.
"""
05.
penup()
06.
goto(xcor,ycor)
07.
setheading(orient)
08.
pendown()
09.
for
i
in
range(
4
):
10.
forward(lado)
11.
right(
90
)
12.
hideturtle()
Podemos generalizar o programa do quadrado para o caso de um polígono regular, desenhado a partir do conhecimento do número de lados e do seu comprimento.
01.
def
poligono(num_lados,tam_lado):
02.
"""Desenha um polígono regular.
03.
04.
"""
05.
angulo
=
360.0
/
num_lados
06.
for
i
in
range(num_lados):
07.
forward(tam_lado)
08.
right(angulo)
09.
hideturtle()
Uma vez mais se pode ver como se trata a questão de ter mais elementos variáveis: são acrescentados como parâmetros. Este programa pode ajudar-nos a desenhar uma circunferência, conhecido o seu raio. A localização inicial pode ser fixa ou variável.
01.
def
circunf(raio):
02.
"""Desenha uma circunferência conhecido o raio.
03.
04.
"""
05.
perimetro
=
2
*
math.pi
*
raio
06.
tam_lado
=
int(perimetro
/
360.0
)
07.
poligono(
360
,tam_lado)
08.
hideturtle()
09.
10.
11.
def
circunf_centro(raio, xcor_centro,ycor_centro):
12.
"""Desenha uma circunferência conhecido o raio e a posição do centro.
13.
14.
"""
15.
perimetro
=
2
*
math.pi
*
raio
16.
tam_lado
=
int(perimetro
/
360.0
)
17.
penup()
18.
goto(xcor_centro, ycor_centro)
19.
pendown()
20.
poligono(
360
,tam_lado)
21.
hideturtle()
Sem comentários:
Enviar um comentário