1.
from
cTurtle
import
*
2.
3.
def
segmento(tartaruga,pos1,pos2):
4.
""" traça um segmento entre pos 1 e pos2."""
5.
tartaruga.pu()
6.
tartaruga.goto(pos1)
7.
tartaruga.pd()
8.
tartaruga.goto(pos2)
Executando o código:
1.
if
__name__
=
=
'__main__'
:
2.
tarta
=
Turtle()
3.
tarta.setheading(
90
)
4.
inicio
=
(
0
,
0
)
5.
fim
=
(
100
,
100
)
6.
segmento(tarta, inicio,fim)
7.
tarta.exitOnClick()
obtemos a imagem:


Note-se como a orientação da caneta, que foi colocada a 90 graus, se manteve. Podemos aliás ver todas as propriedades da caneta socorrendo-nos do comando pen():
1.
>>>
print
tarta.pen()
2.
{
'pensize'
:
1
,
'shown'
:
True
,
'resizemode'
:
'auto'
,
'fillcolor'
: '
', '
stretchfactor
': 1, '
speed':
3
,
3.
'pendown'
:
True
,
'pencolor'
:
'black'
,
'outline'
:
1
}
4.
>>>
Como se pode ver as propriedades da caneta estão guardadas num dicionário ... e podem ser alteradas. Por exemplo, fazendo:
tarta.pen(pencolor='red',pensize = 5, outline = 3)
obtemos a imagem:


Com a capacidade de desenhar segmentos podemos obter formas. Por exemplo, um triângulo:
1.
def
tri(tartaruga,p1,p2,p3):
2.
segmento(tartaruga,p1,p2)
3.
segmento(tartaruga,p2,p3)
4.
segmento(tartaruga,p3,p1)

E se quisermos um quadrado, ou um pentágono? Bom, uma solução é usar uma definição que envolve a lista dos pontos e através de um ciclo for ir juntado de modo ordenado os pontos dois a dois. Podemos também usar a notação *objecto. Deste modo podemos também passar como argumentos um número variável de pontos:
1.
def
formas(tartaruga,
*
pontos):
2.
for
i
in
range(len(pontos)
-
1
):
3.
segmento(tartaruga, pontos[i], pontos[i
+
1
])
4.
segmento(tartaruga,pontos[
-
1
], pontos[
0
])
Para garantir que a figura é fechada temos que juntar no final o último ponto ao primeiro!
Podemos fazer muitas variações sobre este tema. Por exemplo, encher com cor:
1.
def
formas(tartaruga, cor,
*
pontos):
2.
tarta.begin_fill()
3.
tarta.fillcolor(cor)
4.
for
i
in
range(len(pontos)
-
1
):
5.
segmento(tartaruga, pontos[i], pontos[i
+
1
])
6.
segmento(tartaruga,pontos[
-
1
], pontos[
0
])
7.
tarta.end_fill()

Agora é só puxar pela imaginação para fazer mais coisas.
Sem comentários:
Enviar um comentário