Wzór na styczną jest następujący:
tan(angle) = opposite/adjacent
Zobacz ten rysunek:
Gdzie a
jest strona sąsiednia, o
jest stroną przeciwną i theta
kątem. Podobnie, sinus i cosinus to sin (ang) = o / hi cos (ang) = a / h gdzie h
jest długa strona: http://www.mathwords.com/s/sohcahtoa.htm
Tymczasem atan
(skrót od stycznej do łuku , znany również jako styczna odwrotna ) jest odwrotnością tan
:
atan(opposite/adjacent) = angle
Tak więc, jeśli znasz wartości zarówno przeciwnej, jak i sąsiedniej strony (na przykład odejmując współrzędne obiektu od współrzędnych myszy), możesz uzyskać wartość kąta za pomocą atan
.
W rozwoju gry może się jednak zdarzyć dość często, że sąsiednia strona jest równa 0 (np. Współrzędna x wektora wynosi 0). Pamiętając, że tan(angle) = opposite/adjacent
potencjał katastrofalnego błędu dzielenia przez zero powinien być jasny. Tak więc wiele bibliotek oferuje funkcję o nazwie atan2
, która pozwala określić zarówno parametry, jak x
i y
parametry, aby uniknąć podziału na zero i dać kąt we właściwej ćwiartce.
(schemat dzięki uprzejmości Garetha, proszę również głosować na jego odpowiedź)
Zastosowanie trygonometrii w tworzeniu gier jest dość powszechne, szczególnie w przypadku wektorów, ale zwykle biblioteki ukrywają dla ciebie pracę trygonometrii. Możesz użyć sin / cos / tan do wielu zadań, które wymagają manipulacji geometrycznych w celu znalezienia wartości z trójkąta. Potrzebujesz tylko 3 wartości (długości boków / wartości kątów), aby znaleźć inne wartości trójkąta prostokątnego, więc jest to całkiem przydatne.
Możesz nawet użyć „cyklicznej” natury funkcji sinus i cosinus do specjalnych zachowań w grze, np. Widziałem, że cos / sin często używał, aby obiekt obracał się wokół innego.