sexta-feira, 4 de outubro de 2013

Tartarugas e Geometria

Durante as aulas vimos como podíamos usar o módulo turtle para desenhar polígonos regulares. Em particular partimos das soluções para triângulos, quadrados e pentágonos:
import turtle

def  quadrado(lado):
    """ Desenha um quadrado de lado."""
    for i in range(4):
        turtle.forward(lado)
        turtle.left(90)
        
        
def  triangulo(lado):
    """ Desenha um triangulo de lado."""
    for i in range(3):
        turtle.forward(lado)
        turtle.left(120)
        
def  pentagono(lado):
    """ Desenha um pentagono de lado."""
    for i in range(5):
        turtle.forward(lado)
        turtle.left(72)
e ao analisar o código para cada caso verificamos que todos têm em comum o facto de o produto do número de lados pelo ângulo de viragem ser sempre igual a 360. E terá que ser sempre assim para um polígono regular! Então podemos generalizar a nossa solução:

def  poligono(lado, num_lados):
    """ Desenha um poligono de num_lados ."""
    for i in range(num_lados):
        turtle.forward(lado)
        turtle.left(360/num_lados)



 Com este programa podemos desenhar qualquer polígono regular. Podemos pensar agora em alterar a solução geral desfazendo a relação entre o número de lados, o ângulo de viragem e 360 graus. Isso envolve considerar o ângulo como um parâmetro adicional da definição:

def  formas(lado, num_lados, angulo):
    """ Desenha sequências de segmentos eventualmente produzindo formas fechadas."""
    for i in range(num_lados):
        turtle.forward(lado)
        turtle.left(angulo)

Testando diferentes configurações verificamos que para algumas de novo obtemos formas fechadas. Alguns exemplos.
formas(100,5,144)
formas(100,8,135)
formas(100,10,108)






A razão para obtermos estas formas é simples: o produto do número de lados pelo ângulo de viragem é um múltiplo de 360!
Pode-se provar um teorema geral para qualquer forma fechada, seja polígono ou não: a soma dos ângulos de viragem ao longo da forma é sempre um múltiplo de 360. Será que o inverso é verdadeiro, ou seja, se a soma do ângulo de viragem for múltiplo de 360 graus então a forma é fechada? De um modo geral isto não é verdadeiro, embora seja verdadeiro para o caso das formas geradas pelo nosso programa formas.

1 comentário: