У вас есть два значения, "синуса" и "косинуса", то есть числа Y и X, каждое больше или равно -1 и меньше или равно +1. А может быть, они не между -1 и +1 , а с произвольным неизвестным коэффициентом какие угодно. В любом случае можно найти, какому углу в диапазоне от 0 до 360 градусов эта пара чисел соответствует.
Алгоритм решения такой:
1. находим гипотенузу h = корень квадратный( X^2 + Y^2).
- находим AS = arcsin( Y / h) (в градусах)
- находим AC = arccos( X / h) (в градусах)
- записываем в таблицу (первую строку таблицы) следующие значения: AS; 180 - AS; -180 - AS; AS - 360; AS+360, всего 5 чисел
- записываем в таблицу (вторую строку таблицы) следующие значения: AC; -AC; 360 - AC; AC - 360, всего 4 числа
- ищем, какие числа результатов присутствуют и в первой строке, и во второй, должно найтись две пары таких чисел
- одиночки это брак, их выбрасываем, они не для нашего случая исходных данных
- одна пара это угол результат при отсчёте против часовой стрелки, вторая пара это результат при отсчёте угла по часовой стрелке
- если нужен результат в радианах, переключаем на калькуляторе движок в положение "радианы" и применяем в формулах вместо 180 -- пи, вместо 360 -- 2пи
arsin(sin(30) = 0.5) = 30
arcos(cos(30) = 0.866) = 30
------------------------------------------------
150
arsin(sin(150) = 0.5) = 30
arcos(cos(150) = -0.866) = 150
------------------------------------------------
210 (-150)
arsin(sin(210) = -0.5) = -30
arcos(cos(210) = -0.866) = 150
------------------------------------------------
330 (-30)
arsin(sin(330) = -0.5) = -30
arcos(cos(330) = 0.866) = 30
------------------------------------------------
Я взял угол из каждой четверти и посчитал для них арксинус и арккосинус. Одинаковые значения получились только в первой четверти. Как узнать величину угла, когда получились разные значения?