Іноді це справді боротьба за перетворення декартових координат (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°