from cTurtle import *
def segmento(tartaruga,pos1,pos2):
""" traça um segmento entre pos 1 e pos2."""
tartaruga.pu()
tartaruga.goto(pos1)
tartaruga.pd()
tartaruga.goto(pos2)
Executando o código:
if __name__ == '__main__':
tarta = Turtle()
tarta.setheading(90)
inicio = (0,0)
fim = (100,100)
segmento(tarta, inicio,fim)
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():
>>> print tarta.pen()
{'pensize': 1, 'shown': True, 'resizemode': 'auto', 'fillcolor': '', 'stretchfactor': 1, 'speed': 3,
'pendown': True, 'pencolor': 'black', 'outline': 1}
>>>
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:
def tri(tartaruga,p1,p2,p3):
segmento(tartaruga,p1,p2)
segmento(tartaruga,p2,p3)
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:
def formas(tartaruga, *pontos):
for i in range(len(pontos)-1):
segmento(tartaruga, pontos[i], pontos[i+1])
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:
def formas(tartaruga, cor, *pontos):
tarta.begin_fill()
tarta.fillcolor(cor)
for i in range(len(pontos)-1):
segmento(tartaruga, pontos[i], pontos[i+1])
segmento(tartaruga,pontos[-1], pontos[0])
tarta.end_fill()
Agora é só puxar pela imaginação para fazer mais coisas.
Sem comentários:
Enviar um comentário