Espirografia com Python
O espirógrafo, conhecido no Brasil como régua mágica, é um brinquedo para desenhar uma diversidade de curvas. Foi criado por Denys Fisher e o primeiro foi vendido em 1965.
Dentre as curvas criadas pelo espirógrafo, temos a hipotrocoide e a epitrocoide. Tais curvas são obtidas ao fixar uma caneta num ponto de círculo de raio r enquanto este gira em torno de um círculo de raio R.
Neste tutorial faremos essas curvas com Python usando o programa Google Colab.
Este tutorial é voltado para curiosos e alunos de graduação em ciências exatas cursando, ou que já tenham cursado, o curso de Geometria Analítica.
Sumário
- Gráfico de linha
- Gráfico de linha com vários pontos
- Curvas paramétricas
- Epitrocoide
- Hipotrocoide
- Criando suas próprias curvas
Gráfico de linha
Um gráfico de linha é formado por uma sequência contínua de pontos. No entanto, como no computador não há possibilidade de mostrar infinitos pontos num gráfico, na prática usamos uma quantidade finita e, então, ligamos estes para dar a impressão de continuidade.
Vejamos na prática o que foi dito acima. Suponha que queremos fazer o gráfico da parábola y = x². Como não é possível passar infinitos pontos para o computador, pois ele tem memória finita, passamos apenas alguns:
O código acima armazena na lista x e na lista y, respectivamente, as primeiras e segundas coordenadas de 5 pontos: (-2,4), (-1,1), (0,0), (1,1) e (2,4). Tais pontos são pontos que satisfazem a equação y=x².
Faremos agora o gráfico da parábola:
O resultado é algo como:
Nesse ponto podemos observar que, apesar de parecido com uma parábola, não ficou muito bom o gráfico. Se aumentarmos o número de pontos para, digamos 1000 pontos, talvez tenhamos a impressão de continuidade e o gráfico fique melhor. Mas para declarar 1000 coordenadas de x e y levaríamos o dia todo!!! Como faremos isso?!?!
Gráfico de linha com vários pontos
Existem um jeito de declarar vários pontos com a biblioteca numpy. Suponhamos que queremos declarar 1000 valores começando por -2 e terminando em 2 e armazenar todos numa variável t. Para isso basta digitar o seguinte código:
Ao invés de declarar x e y com alguns poucos valores, como fizemos anteriormente, podemos declarar x e y em função de t. Dessa forma x e y terão 1000 valores cada. Vejamos:
O símbolo ** significa potenciação, logo t**2 é t². Façamos novamente o gráfico da parábola:
E o resultado é:
Perfeito! São tantos pontos ligados que não podemos ver as quinas, temos a impressão de continuidade e observamos um gráfico perfeito!
Não queremos ficar só na parábola, não é mesmo? O que mais podemos fazer?
Curvas paramétricas
Quando fazemos x=t e y=t² estamos declarando equações paramétricas para a parábola. Podemos fazer isso com outras funções conhecidas. Por exemplo, para a função y = cos(x) podemos declarar x=t e y=cos(t). Vejamos como fica o código:
Observe que mantemos 1000 pontos, no entanto, dessa vez, variamos t de 0 a 2 π. Toda vez que aparecer np estamos utilizando a biblioteca numpy.
- np.pi é o número π, a saber 3,1415926…
- np.cos é a função trigonométrica cosseno
Podemos encontrar várias outras funções da biblioteca numpy aqui.
Podemos rotacionar curvas paramétricas e fazer gráficos de elipses, aqui tem um tutorial de como fazer. Mas, nesse tutorial, estamos interessados nas curvas obtidas do espirógrafo.
Agora que sabemos o que são curvas paramétricas e como fazer os gráficos delas em Python, nos perguntamos:
- Será que as curvas obtidas da régua mágica tem equações paramétricas?
- Será que é possível fazer as curvas do espirógrafo com Python?
A resposta é sim!
Epitrocoide
Na Wikipédia é possível encontrar as paramétricas da epitrocoide:
Aqui, θ faz o papel da variável t dos exemplos anteriores. As outras letras, R, r e d, representam constantes. Faremos então o epitrocoide:
O resultado é:
Hipotrocoide
Podemos encontrar as paramétricas do hipotrocoide, também, na Wikipédia.
Novamente, R, r e d são constantes e θ faz o papel do parâmetro t.
Ao executar o código acima obtemos:
Criando suas próprias curvas
Alterando R, r e d, variamos o tamanho dos círculos e a localização do ponto no qual a caneta é fixada no espirógrafo.
Por exemplo, fazendo R=125, r=75 e d=125 no hipotrocoide obtemos:
A programação nos dá um poder além da imaginação. Não precisamos nos ater apenas às alterações das constantes. Podemos alterar sinais, funções, intervalos, etc …
No código acima, d foi trocado por r nas paramétricas do epitrocoide. O resultado:
É possível fazer animações da construção dessas curvas. Para fazer isso, há excelente site e podemos acessá-lo clicando aqui.
Desafio
É possível mudar as cores das curvas ou fazer mais de uma curva na mesma janela de figura gerando desenhos incríveis! Usar um programa para colorir, como o Inkscape, pode gerar resultados surpreendentes e é um bom passatempo! Matemática também é arte!
Divirta-se e até a próxima!