La fórmula tangente es esta:
tan(angle) = opposite/adjacent
Consulte este dibujo:
Donde a
está el lado adyacente, o
es el lado opuesto y theta
es el ángulo. Del mismo modo, seno y coseno son sin (ang) = o / hy cos (ang) = a / h, donde h
está el lado largo: http://www.mathwords.com/s/sohcahtoa.htm
Mientras tanto atan
(abreviatura de arco-tangente , también conocida como la tangente inversa ) es lo contrario de tan
, así:
atan(opposite/adjacent) = angle
Por lo tanto, si conoce los valores de los lados opuestos y adyacentes (por ejemplo, restando las coordenadas del objeto de las coordenadas del mouse) puede obtener el valor del ángulo con atan
.
Sin embargo, en el desarrollo del juego, puede ocurrir con bastante frecuencia que el lado adyacente sea igual a 0 (por ejemplo, la coordenada x de un vector es 0). Recordando que tan(angle) = opposite/adjacent
el potencial de un desastroso error de división por cero debería ser claro. Por lo tanto, muchas bibliotecas ofrecen una función llamada atan2
, que le permite especificar los parámetros x
y y
, para evitar la división por cero y proporcionar un ángulo en el cuadrante derecho.
(diagrama cortesía de gareth, por favor vote su respuesta también)
El uso de trigonometría en el desarrollo de juegos es bastante común, especialmente con vectores, pero generalmente las bibliotecas ocultan el trabajo de trigonometría para usted. Puede usar sin / cos / tan para muchas tareas que involucran manipulaciones geométricas para encontrar un valor de un triángulo. Todo lo que necesitas son 3 valores (longitudes de los lados / valores de los ángulos) para encontrar los otros valores de un triángulo rectángulo, por lo que es bastante útil.
Incluso puedes usar la naturaleza de "ciclismo" de las funciones seno y coseno para comportamientos especiales en un juego, por ejemplo, he visto que cos / sin se usa mucho para hacer que un objeto gire sobre otro.