Die Tangentenformel lautet:
tan(angle) = opposite/adjacent
Beziehen Sie sich auf diese Zeichnung:
Wo a
ist die benachbarte Seite, o
ist die gegenüberliegende Seite und theta
ist der Winkel. In ähnlicher Weise sind Sinus und Cosinus sin (ang) = o / h und cos (ang) = a / h, wobei h
die lange Seite lautet: http://www.mathwords.com/s/sohcahtoa.htm
In der Zwischenzeit atan
(Abkürzung für Arcustangens , auch als inverser Tangens bezeichnet ) ist das Gegenteil von tan
:
atan(opposite/adjacent) = angle
Wenn Sie also die Werte der gegenüberliegenden und benachbarten Seiten kennen (z. B. durch Subtrahieren der Objektkoordinaten von den Mauskoordinaten), können Sie den Wert des Winkels mit ermitteln atan
.
In der Spielentwicklung kann es jedoch ziemlich häufig vorkommen, dass die benachbarte Seite gleich 0 ist (z. B. wenn die x-Koordinate eines Vektors 0 ist). Denken Sie daran, dass tan(angle) = opposite/adjacent
das Potenzial für einen katastrophalen Fehler bei der Division durch Null klar sein sollte. Viele Bibliotheken bieten daher eine Funktion namens an atan2
, mit der Sie die Parameter x
und angeben y
können, um die Division durch Null für Sie zu vermeiden und einen Winkel im rechten Quadranten anzugeben .
(Diagramm mit freundlicher Genehmigung von Gareth, bitte stimmen Sie auch seine Antwort ab)
Die Verwendung von Trigonometrie in der Spieleentwicklung ist besonders bei Vektoren sehr verbreitet, aber in der Regel verbergen Bibliotheken die Trigonometriearbeit für Sie. Sie können sin / cos / tan für viele Aufgaben verwenden, bei denen geometrische Manipulationen erforderlich sind, um einen Wert aus einem Dreieck zu ermitteln. Alles, was Sie brauchen, sind 3 Werte (Seitenlängen / Winkelwerte), um die anderen Werte eines Rechteckdreiecks zu finden.
Sie können sogar die "zyklische" Natur der Sinus- und Cosinus-Funktionen für spezielle Verhaltensweisen in einem Spiel verwenden, z.