A fórmula tangente é esta:
tan(angle) = opposite/adjacent
Consulte este desenho:
Onde a
fica o lado adjacente, o
é o lado oposto e theta
é o ângulo. Da mesma forma, seno e cosseno são sin (ang) = o / he cos (ang) = a / h, onde h
está o lado mais longo: http://www.mathwords.com/s/sohcahtoa.htm
Enquanto isso atan
(abreviação de tangente ao arco , também conhecida como tangente inversa ) é o inverso de tan
, assim:
atan(opposite/adjacent) = angle
Portanto, se você conhece os valores dos lados oposto e adjacente (por exemplo, subtraindo as coordenadas do objeto das coordenadas do mouse), pode obter o valor do ângulo com atan
.
No desenvolvimento de jogos, porém, pode acontecer com bastante frequência que o lado adjacente seja igual a 0 (por exemplo, a coordenada x de um vetor sendo 0). Lembrando que tan(angle) = opposite/adjacent
o potencial para um erro desastroso de dividir por zero deve ser claro. Portanto, muitas bibliotecas oferecem uma função chamada atan2
, que permite especificar os parâmetros x
e y
, para evitar a divisão por zero e fornecer um ângulo no quadrante direito.
(diagrama cortesia de Gareth, por favor vote sua resposta também)
O uso da trigonometria no desenvolvimento de jogos é bastante comum, especialmente com vetores, mas geralmente as bibliotecas ocultam o trabalho de trigonometria para você. Você pode usar sin / cos / tan para muitas tarefas que envolvem manipulações geométricas para encontrar um valor em um triângulo. Tudo o que você precisa é de 3 valores (comprimentos laterais / valores de ângulo) para encontrar os outros valores de um triângulo retangular, por isso é bastante útil.
Você pode até usar a natureza "ciclista" das funções seno e cosseno para comportamentos especiais em um jogo, por exemplo, eu vi cos / sin usado muito para fazer um objeto girar em torno de outro.