Касательная формула такова:
tan(angle) = opposite/adjacent
Обратитесь к этому рисунку:
Где a
соседняя сторона, o
это противоположная сторона и theta
это угол. Аналогично, синус и косинус - это sin (ang) = o / h, а cos (ang) = a / h где h
длинная сторона: http://www.mathwords.com/s/sohcahtoa.htm
Между тем atan
(сокращение от арктангенса , также известного как обратный тангенс ) является обратным tan
, примерно так:
atan(opposite/adjacent) = angle
Таким образом, если вы знаете значения как противоположных, так и соседних сторон (например, вычитая координаты объекта из координат мыши), вы можете получить значение угла с помощью atan
.
Однако в разработке игр может случиться так, что соседняя сторона равна 0 (например, координата x вектора равна 0). Помните, что tan(angle) = opposite/adjacent
вероятность катастрофической ошибки деления на ноль должна быть очевидной. Так много библиотек предлагают функцию с именем atan2
, которая позволяет определить как x
и y
параметры, чтобы избежать деления на ноль для вас и дать угол в правом квадранте.
(диаграмма любезно предоставлена Гаретом, пожалуйста, проголосуйте и за его ответ)
Использование тригонометрии в разработке игр довольно распространено, особенно с векторами, но обычно библиотеки скрывают работу тригонометрии для вас. Вы можете использовать sin / cos / tan для множества задач, которые включают геометрические манипуляции, чтобы найти значение из треугольника. Все, что вам нужно, это 3 значения (длина стороны / угловые значения), чтобы найти другие значения прямоугольного треугольника, так что это весьма полезно.
Вы даже можете использовать "циклическую" природу функций синуса и косинуса для особого поведения в игре, например, я видел, как cos / sin много использовал, чтобы объект поворачивался вокруг другого.