La formula tangente è questa:
tan(angle) = opposite/adjacent
Fare riferimento a questo disegno:
Dov'è a
il lato adiacente, o
è il lato opposto ed theta
è l'angolo. Allo stesso modo, seno e coseno sono sin (ang) = o / h e cos (ang) = a / h dov'è h
il lato lungo: http://www.mathwords.com/s/sohcahtoa.htm
Nel frattempo atan
(abbreviazione di tangente ad arco , noto anche come tangente inversa ) è il contrario di tan
, in questo modo:
atan(opposite/adjacent) = angle
Pertanto, se si conoscono i valori di entrambi i lati opposti e adiacenti (ad esempio sottraendo le coordinate dell'oggetto dalle coordinate del mouse) è possibile ottenere il valore dell'angolo con atan
.
Nello sviluppo del gioco, tuttavia, può succedere abbastanza spesso che il lato adiacente sia uguale a 0 (ad esempio, la coordinata x di un vettore è 0). Ricordando che tan(angle) = opposite/adjacent
il potenziale per un disastroso errore di divisione per zero dovrebbe essere chiaro. Così un sacco di librerie offrono una funzione chiamata atan2
, che consente di specificare sia le x
e y
parametri, per evitare la divisione per zero per voi e dare un angolo nel quadrante destro.
(diagramma per gentile concessione di Gareth, vota anche la sua risposta)
L'uso della trigonometria nello sviluppo del gioco è abbastanza comune, specialmente con i vettori, ma di solito le biblioteche nascondono il lavoro della trigonometria per te. Puoi usare sin / cos / tan per molte attività che coinvolgono manipolazioni geometriche per trovare un valore da un triangolo. Tutto ciò di cui hai bisogno sono 3 valori (lunghezze laterali / valori dell'angolo) per trovare gli altri valori di un triangolo rettangolare, quindi è abbastanza utile.
Puoi anche usare la natura "ciclica" delle funzioni seno e coseno per comportamenti speciali in un gioco, ad esempio ho visto cos / sin usato molto per far girare un oggetto attorno ad un altro.