Иногда действительно трудно преобразовать декартовы координаты (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°