Іноді це справді боротьба за перетворення декартових координат (x,y)у полярні координати (r,phi). У той час як ви можете розрахувати r = sqrt(x^2+y^2)досить легко, часто потрібно певна різниця випадків при розрахунку кута , phiтому що arcsin, arccosа arctanй всі інші тригонометричні функції мають спільний домен, кожні тільки прольоти половини окружності.
У багатьох мовах є вбудовані для перетворення прямокутних у полярні координати або, принаймні, мають atan2функцію, яка - задано (x,y)- обчислює кут phi.
Завдання
Ваше завдання - написати програму / функцію, яка займає дві (плаваюча точка, а не обидві нульові) декартові координати (x,y), і виводить відповідний полярний кут phi, де phiмає бути в градусах, радіанах або класах (під класами я маю на увазі градіани, які дорівнюють 1 / 400 повного кола), що вам зручніше.
Кут вимірюється в позитивній орієнтації, і для нас є нульовий кут (1,0).
Деталі
Ви не можете використовувати вбудовані модулі , які обчислюють кут phiдав дві координати, в тому числі atan2, rect2polar, argOfComplexNumberі інші подібні функції. Однак ви можете використовувати звичайні тригонометричні функції та їхні звороти, які беруть лише один аргумент. Будь-які символи одиниці необов’язкові.
Радіус rповинен бути невід’ємним і phiповинен знаходитися в діапазоні [-360°, 360°](не має значення, виводить 270°чи -90°).
Приклади
Input Output
(1,1) 45°
(0,3) 90°
(-1,1) 135°
(-5,0) 180°
(-2,-2) 225°
(0,-1.5) 270°
(4,-5) 308.66°