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