Tutorial: Matemática Aplicada a Jogos Digitais – Parte 3: Funções

Muitas coisas que encontramos nos jogos estão relacionadas entre si de várias formas. A maioria delas possui o formato da Matemática.

Saber tirar proveito das relações matemáticas que diversos elementos dos jogos possuem facilita e muito o desenvolvimento dos mesmos.

Essas relações matemáticas chamamos de função, tema da nossa continuação de Matemática e games.

 

1. Apresentando as Funções

As funções estabelecem uma relação padrão entre dois conjuntos. Por exemplo, imagine que temos um conjunto A e um conjunto B, cujos elementos estão relacionados, como indica a imagem abaixo:

Figura 1: Os elementos do conjunto A estão relacionados com os do conjunto B

O conjunto A, que são os valores que estamos relacionando, chamamos de domínio. O conjunto B, chamamos de contra-domínio. Note que no contra-domínio podem existir valores que não estão relacionados com o domínio. Isso é totalmente válido. Agora, se nós separarmos os valores do contra-domínio que estão sendo relacionados com algum elemento do domínio, obtemos o conjunto imagem.

Figura 2: Os elementos do domínio (Amarelo) possuem relacionamento com elementos do contra-domínio (Roxo). Entretanto, elementos do contra-domínio que não estão relacionados, não fazem parte do conjunto Imagem (Verde)

Se você for um bom observador, já deve ter percebido que existe um padrão neste relacionamento. Os elementos do conjunto A estão se relacionando com os seus respectivos dobros no conjunto B, ou seja, existe uma função onde, para cada valor do conjunto A vai existir um valor de B, que podemos descrever da seguinte forma:

f(A) = B

Aqui estamos apenas dizendo que o conjunto A é o domínio e que a imagem será formada com elementos do conjunto B. Entretanto, nós podemos usar uma equação para mapear os valores do domínio para imagem. Usando a mesma relação anterior, podemos observar que o valor de B sempre vai ser o dobro de A, ou seja:

B=2*A

Substituindo na relação, encontramos:

f(A) = 2*A

Pode testar, para qualquer valor de A que você substituir na equação, quando resolvida, sempre vai resultar no valor correspondente do conjunto B. Veja a tabela abaixo:

 

2. Gráficos das Funções

Algo que pode ajude ajudar quando se analisa uma função é a possibilidade de mapeá-la em um sistema de coordenadas, como o plano cartesiano. Para fazer isso, imagine o seguinte: o eixo das abscissas (eixo x) representa o conjunto domínio.


Figura 3: o eixo das abscissas é o domínio

E o eixo das ordenadas (eixo y) é o contradomínio:

Figura 4: o eixo das ordenadas é o contradomínio

Agora, para cada par (domínio, contradomínio) marque um ponto. Na imagem abaixo, vou usar a tabela acima para marcar os pontos:

Figura 5: Marcar os pontos no plano de forma que cada ponto do domínio fique na altura da sua imagem

Agora, se você ligar os pontos, você perceberá que eles formam uma reta.


Figura 6: Liguem os pontos e temos uma reta

Essa reta traça todos os valores da relação f(A)=B possíveis e podemos estendê-la ao infinito tanto para o lado esquerdo, quanto para o lado direito, mas sempre obedecendo a relação dada por f(A).
O mais interessante dos gráficos das funções é que o tipo de imagem que se forma depende do tipo da equação usada para estabelecer a relação. Por exemplo, uma equação do segundo grau resultará em uma parábola. Em equações modulares, o gráfico terá um formato em “V” e assim por diante. As imagens abaixo mostram alguns tipos de gráficos de acordo com o tipo de equação:


Figura 7: Gráfico para f(x)=2x+1 (Equação do Primeiro Grau)


Figura 8: Gráfico para f(x)=x2-2x-1 (Equação do Segundo Grau)


Figura 9: Gráfico para f(x)=sen(x) (Equação Senoidal)


Figura 10: Gráfico para f(x)=|x| (Equação Modular)


Figura 11: Gráfico para

As informações que podemos obter com os gráficos da equação dependem de cada tipo e, se formos analisar todos os tipos de equação, ficaríamos o dia todo fazendo isso. O único item em comum em todas as equações é que suas possíveis raízes são valores onde as ordenadas são 0, ou seja, cruzam o eixo das abscissas. Por isso que a equação de primeiro grau possui uma raiz (atravessa uma vez) e equações do segundo grau podem ter duas raízes (os dois lados da parábola atravessam a abscissa, como na figura 8), uma (quando o ponto do meio da parábola coincide com o eixo) ou nenhuma raíz (nenhum ponto coincide).

 

3. Aplicações Práticas das Funções

Função é aplicado basicamente a tudo. Não é à toa que procedimentos que retornam algum valor são chamado de função em algumas linguagens. Entretanto, para os programadores, existem alguns tópicos que é importante saber, por exemplo: em um jogo 2D, seu personagem moverá 10 pixeis por segundo. Para você atualizar a nova posição do personagem, você tem a posição atual (S0), a velocidade (v) e o tempo (t):

S = S0 + v*t

agora, se quisermos criar uma relação do tempo com a posição final, podemos reescrever em forma de função:

f(t) = S0 + v*t

E se criarmos um gráfico para esta função, teremos a trajetória exata do personagem e o tempo necessário para chegar até lá. Isso é útil para jogos estilo Super Mario Bros, para estimar quanto tempo é necessário para chegar no final da fase e assim, não estipular um tempo impossível. Supomos o seguinte problema: Qual é o tempo mínimo para que o Mario chegue até o final da primeira fase, sabendo que ele anda 10 pixels por segundo e a fase tem 3392 pixeis de largura?

Figura 12: A primeira fase do Super Mario Bros. tem 3392 Pixeis de largura

Então, primeiro substituímos as variáveis pelos valores, ficando:

f(t) = S0 + v*t
3392 = 0+10*t
3392 = 10t
339,2 = t

Logo, a resposta é 339,2 segundos. Outro problema: Qual é o valor máximo de largura que uma fase deve ter para que o Mario chegue em 350 segundos? Resolvemos assim:

f(t) = S0 + v*t
f(350) = 0 + 10*350
f(350)=3500

Resposta: 3500 pixeis. Logo, a fase deve ter menos de 3500 pixeis para o Mario possa chegar até o final da fase antes do tempo.

Outra aplicação prática tem a ver com os tipos de imagens, mais especificadamente, os tipos vetoriais. As imagens vetoriais são aquelas que se utilizam das funções para descrevê-la. Por exemplo, veja a sequência de funções abaixo:

f(x) = x+1 com x>=1 e x<=5
f(x) = 2 com x>=1 e x<=10
f(x) = a = (-4/5)x+10 com x>=5 e x<=10

Temos três funções e restrigimos os três domínios em um intervalo finito. Agora, ao criar o gráfico com todas as funções juntas, temos a seguinte imagem:


Figura 13: Combinando o gráfico das funções: é assim que funcionam as imagens vetoriais

No caso acima, eu desenhei um triângulo usando retas. Claro que existem formas mais eficientes para obter um triângulo, mas todos eles envolvem algum tipo de função. Por serem dependentes de uma função, é possivel ampliar e diminuir sem perder qualidade, onde aplicamos as escalas nas funções antes de gerar a imagem.

 

4. Considerações Finais

Neste tutorial falei sobre funções, que são usadas para determinar relações matemáticas em um determinado contexto. Futuramente, vamos falar de funções mais específicas, ou seja, hoje apenas passei uma ideia geral do que seria uma função. Portanto, não perca o nosso 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