Meu pai é formado em matemática e sempre estimulou nosso (meu e dos meus irmãos) contato com a matemática desde de pequenos. Uma das brincadeiras corriqueiras em nossa família era a brincadeira do “pum”. Nessa brincadeira o grupo, organizado em uma roda de pessoas, conta números de 1 a 100 na ordem normal (1, 2, 3, 4, 5, 6, …, 100). Cada pessoa conta um número da sequência coincidindo com sua ordem na roda. Porém quando chegar a um múltiplo de 7 a pessoa da vez deve, ao invés de falar o número, falar a palavra “pum”. Uma maneira super divertida de exercitar a matemática e a tabuada (obrigado, pai).

Apesar de certa facilidade que tive com matemática na escola, eu sempre me incomodei por estudar coisas que eu não sabia ao certo como usar. Pra que aprender se nunca vou usar?

Apesar dos professores que tive terem feito diversas tentativas de explicar aplicabilidades, não lembro de nenhuma vez que calculei o volume de uma esfera em minha vida. E o tal do -b + ou – raiz quadrada de b ao quadrado, -4ac tudo sobre 2a (Bhaskara)???? Até hoje não sei onde usar. O mesmo era com o tal do Seno e do Cosseno, aqueles dois irmãos estranhos que não me pareciam ter sentido algum.

No início da minha vida na programação, quando cursava o Técnico no ano de 2006, fiz parte de um grupo de pesquisa voltado ao desenvolvimento de jogos chamado Pajé (Programação aplicada a jogos eletrônicos). Certa vez comecei o desenvolvimento de um joguinho ao qual dei o nome da Baliza. Neste joguinho o objetivo era estacionar o carro em uma vaga como exposto na imagem a seguir.

Imagem do jogo Baliza (2006)

O Jogo era 2D e com uma visão de cima do carro. Eu, com poucos conhecimentos de física, tinha um grande desafio de implementar o movimento do carro de forma adequada. Foi uma experiência muito divertida aprender isso tudo. A maior dificuldade que tive foi para fazer o carro se mover conforme o ângulo certo. Em uma tela 2D temos eixos X e Y semelhantes a um plano cartesiano (porém o Y para baixo é negativo) como exposto na Imagem 2.

Imagem 2: Eixo X e Y em uma tela 640 x 480 pixels. Fonte

Mover o carrinho quando posicionado nos ângulos 0, 90, 180 e 270 graus era fácil. Defini que em 0 graus o carrinho ficaria apontado para cima. Sendo assim para mover pra frente era só diminuir a posição do carrinho no eixo Y. Logicamente a 180 graus, bastava aumentar a posição do carrinho no eixo Y. Quando o carro estava a 90 e 270, era só fazer os movimentos equivalentes no eixo X. Mas temos 360 graus, porque usar só 4? a jogabilidade ficaria limitada. Incluí então os graus das diagonais, 45, 135, 225 e 315 graus.

Fácil! Pensei. Agora é só mover o X e o Y com valores iguais porém para sentidos diferentes conforme o grau. Se eu quisesse por exemplo mover o carro 3 pixels, estando ele a 45 graus, bastava aumentar 3 pixels do X e diminuir 3 pixels do Y. Aplicada a solução para cada grau, percebi dois problemas: I) O código estava começando a aumentar, e se eu quisesse implementar mais graus, eu teria que ter uma regra para cada grau implementado. II) O carrinho não tinha se movido apenas 3 pixels, ele tinha se movido um pouco mais.

Mas, um aluno descobrindo o mundo não iria se desanimar com estes pequenos dois probleminhas, fui em frente. Tentei seguir uma lógica, pensei em tratar o ponto intermediário entre o 0 grau e o 45 graus, chegando no valor de 22,5 graus. Se em 45 graus em aumentava o X e o Y igual, ao mover a 22,5 graus manteria o movimento do Y, porém diminuiria na metade o movimento do X. O resultado foi catastrófico. Tinha aumentado meu código com mais 8 regras de movimento, com cálculos mais complexos, e com um resultado muito esquisito. Parecia que o carrinho estava fazendo um drift contínuo em um piso com neve.

Fiquei alguns dias quebrando a cabeça, tentando ajustar e melhorar os cálculos para que tivesse um comportamento adequado. Mas estava longe de ter algum resultado bom. Então pensei comigo, “deve ter algum cálculo matemático que permite fazer esse movimento de forma exata”. Fui procurar então o orientador do grupo de pesquisa para mostrar a ele o progresso no jogo e perguntar que fórmula eu poderia usar para calcular o deslocamento necessário nesses ângulos intermediários às diagonais. Ele viu o movimento do carrinho funcionando, o visual estava bonito, e as coisas estavam acontecendo. Ele ficou orgulhoso, mas não entendeu porque o movimento estava tão estranho. Quando mostrei pra ele o imenso código que eu tinha feito, ele carinhosamente(ironia) me deu um tapa na nuca e disse: SEU BURRO, USA SENO E COSSENO!

E não é que aquelas fórmulas matemáticas tinham utilidade mesmo? Depois de algumas horas pesquisando como aplicar seno e cosseno para determinar o deslocamento num plano cartesiano meu código já tinha diminuído de 20 linhas de código para 2.

Mas como funcionam esses tais seno e cosseno? O Gif a seguir demonstra um pouco do seu comportamento do seno.

O seno veio da trigonometria baseada em meia corda originada na matemática hindu e posteriormente árabe[1, 2]. Experimente pegar uma corda e girar ela. Essa corda passará a ser o raio de um círculo e a ponta da corda formará sua circunferência que é igual ao famoso número Pi (π), 3,1415926, vezes o raio (o no nosso caso o comprimento da corda. O seno por sua vez é a posição no eixo y de um plano cartesiano posicionado no centro de um círculo trigonométrico unitário. Ou seja em um círculo de raio = 1 o seno será exatamente a posição de y nesse plano cartesiano. O cosseno é a posição no eixo x desse mesmo plano cartesiano unitário[1]. No gráfico abaixo o seno é y ‘ e o cosseno é x ‘ considerando um círculo de raio 1.

Com isso podemos considerar o seno como um percentual do raio no eixo y, e o cosseno como um percentual do raio no eixo x de um plano cartesiano centrado em um círculo em função do ângulo de determinada reta (ou corda) dentro desse círculo.

A matemática se torna linda quando a entendemos e principalmente quando a utilizamos. A aplicação dela no deslocamento do meu carrinho no jogo se tornou exata (afinal é uma ciência exata). Perceber que havia perdido dias tentando entender algo que já era de conhecimento de outros foi um misto de frustração (com minha ignorância) com o prazer de liberdade, e totalmente coerente com o tapa na nuca de meu orientador. 

Espero ansiosamente pelo dia que utilizarei a fórmula de Bhaskara e outras fórmulas matemáticas que aprendi e poderei dar mais sentido aos anos de estudos formais que tive.

Desejo a todos experiências de matemática aplicada como essa que vivenciei.

Um abraço digital.

Referências:

  1. Maor, Eli, Trigonometric Delights Arquivado em 4 de abril de 2004, no Wayback Machine., Princeton Univ. Press. (1998). Reprint edition (February 25, 2002): ISBN 0-691-09541-8.
  2. https://pt.wikipedia.org/wiki/Seno

Leroi Oliveira. Pai de duas lindas crianças. Sempre disposto a entrar em uma discussão filosófica ou polêmica. Mestre em Computação pela UFPel, gosta de games, música, acampar, trilhas, montanhas e viajar.