Tutorial: Matemática Aplicada a Jogos Digitais – Parte 4: Teorema de Pitágoras

O Teorema de Pitágoras foi um dos teoremas mais antigos responsável pelo avanço na matemática antiga, e que até hoje é bastante usado.

O conceito surgiu antes mesmo do conceito dos números irracionais. Um dos discípulo de Pitágoras, o Hípaso de Metaponto, percebeu a existência, mas morru afogado, jogado ao mar, porque seus colegas não aceitaram a possibilidade dos números irracionais.

Então, vamos explorar esse famoso teorema.

1. Explicando o Teorema

Teorema de Pitágoras é uma das regras matemáticas que todo desenvolvedor de jogos deve ter em mente. Com ela, você pode medir distâncias e, se souber manipular a equação, até criar otimizações.

Vamos conhecer o que o conceito do Teorema diz:

“Em qualquer triângulo retângulo, o quadrado do comprimento da hipotenusa é a soma do quadrado dos comprimentos dos catetos”

Mas primeiro, vamos definir os termos. Triângulo retângulo é todo triângulo em que um dos ângulos forma 90º.

Figura 1: Isso é um triângulo retângulo

Hipotenusa é o lado do triângulo mais comprido. Os outros dois lados restantes são chamado de catetos.

Figura 2: Hipotenusa é o maior dos lados. Os outros são chamados de catetos

Agora, a soma dos quadrados da hipotenusa e dos catetos. Imagine que para cada lado do triângulo, se forma um quadrado do lado de fora. Então, para cada um dos quadrados, calcule a sua área:

Figura 3: Para calcular a área do quadrado, eleve o comprimento do respectivo lado em 2

Agora, se você somar o valor da área dos quadrado dos dois catetos, você verá que vai ser igual a área do quadrado formado pela hipotenusa. Em termos matemáticos, temos:

(Hipotenusa)² = (CatetoA)²+(CatetoB

Mas este video resume tudo o que quero dizer:

 

2. Aplicações Práticas

Em jogos, a principal aplicação do teorema de Pitágoras é para medir distâncias entre dois pontos. Isso em diversos contextos. Por exemplo, pode ser para verificar se houve colisão em uma esfera (como visto na parte 4 do tutorial do HTML 5).

Agora ensinarei como medir a distância entre dois pontos usando o teorema de Pitágoras: primeiro, localize os dois pontos desejados, em um sistema de coordenadas. Vamos pegar dois pontos como exemplo: um ponta A(1,2) e outro ponto B(5,5).


Figura 4: Localize os dois pontos em um plano cartesiano

Se você traçar uma reta do ponto A até o ponto B, encontrará uma reta com o mesmo comprimento da distância entre os dois pontos. Vamos chamar a reta de “d”:


Figura 5: Trace uma reta entre os pontos A e B e teremos uma reta com o comprimento igual a distância

Para calcular a distância, vamos localizar um terceiro ponto cuja posição esteja alinhada exatamente na horizontal de um ponto e vertical do outro. No nosso exemplo, temos duas possibilidades: (1,5) e (5,2), ou seja, (XA,YB) ou (XB, YA).


Figura 6: Escolha um ponto em que fique na  mesma  posição x  do ponto A e posição Y do ponto B ou o contrário, posição x do ponto B e posição y do ponto A

Vamos escolher o ponto de baixo que é o (5,2) para o nosso exemplo, significa que pegamos o ponto (XB, YA) e chamaremos o ponto de C. Se nós ligarmos o ponto C com os pontos A e com o ponto B, adivinhem o que teremos?


Figura 7: Ligando o ponto C com os pontos A e B

Isso mesmo! Teremos um triângulo retângulo. Neste triângulo, a reta AB é a hipotenusa e as retas AC e BC são os catetos. Então agora precisamos saber quais são os valores dos catetos, o que é simples. Como o ponto C está alinhado com os outros dois pontos de forma paralela aos dois eixos, podemos apenas tirar a diferença das posições dos dois pontos. Por exemplo, o ponto A e C estão alinhados paralelamente ao eixo X, logo, calcula-se a diferença dos valores X de cada ponto, como segue a fórmula:

cx = |Ax – Cx|

Note que aqui eu utilizo módulo. A razão disso posso explicar usando os valores do nosso exemplo, que ficaria:

cx = |1 – 5|
cx = |-4|
cx = 4

Dependendo da configuração dos pontos, a diferença pode ser um número positivo ou negativo. Como não existe distância negativa, utiliza-se a operação do módulo que retornará o valor absoluto da distância. Agora fazemos o mesmo com a reta BC, só que usaremos a diferença das posições em paralelo ao eixo Y:

cy = |By – Cy|
cy = |5 – 2|
cy = |3|
cy = 3

Agora sabemos a medida dos três lados do triângulo:


Figura 8: Os valores dos catetos são 4 e 3

Agora, aplicando o teorema de Pitágoras temos os seguintes cálculos:

d² = cx²+ cy²
d² = 4²+3²
d² = 16 + 9
d² = 25
d=
d=5

Finalmente! Descobrimos que a distância entre o ponto A e o ponto B é 5. Claro que na programação, não vamos fazer passo a passo como fizemos. Para isso, vamos manipular as equações a partir do Teorema de Pitágoras:

d² = cx²+ cy²

A fórmula de cx é cx = |Ax – Cx| e do cy é cy = |By – Cy|, substituindo no teorema de Pitágoras temos:

d² = |Ax – Cx|²+  |By – Cy

Sabemos que o ponto C vem dos dois pontos, logo Cx=Bx e Cy=Ay , que substituindo na equação, temos:
d² = |Ax – Bx|²+  |By – Ay

Então, acabamos de eliminar a necessidade do cálculo do ponto C. Para finalizar, vamos remover a potência de d para termos a fórmula direta da distância entre dois pontos:

E eis a equação final da distância entre dois pontos. Agora você pergunta: e se a distância entre pontos em um espaço for 3D, como seria? Muito simples: bastaria adicionar o módulo da diferença entre os valores de um eixo Z na nossa soma da equação, ficando da seguinte forma:

3. Considerações Finais

Hoje falei de um dos teoremas que mais influenciou a nossa matemática: o teorema de Pitágoras. Mostrei que ela pode ser usada para calcular distância entre dois pontos em um plano e também pode ser ampliada para um espaço 3D. Qualquer problema que necessite calcular distância, como alguns métodos de detecção de colisão, utilizam de alguma forma deste teorema. Então, este foi o tutorial de hoje e espero vocês no próximo tutorial.

Thalisson Christiano de Almeida

Thalisson Christiano de Almeida

Formado em Ciência da Computação (UDESC). Foi Programador da Céu Games e professor do Técnico em Informática do SENAI-SC. Atualmente, trabalha na empresa By Seven. Já foi jogador de xadrez e praticou kung-fu, ambos por 4 anos. Hoje é praticante do Jiu-jitsu, esperando que não fique nos 4 anos. Não tem preferência de tipos de jogos em especifico, variando desde jogos casuais de Facebook até jogos mais hardcore.

Send this to a friend