Às vezes, é realmente difícil converter coordenadas cartesianas em coordenadas (x,y)polares (r,phi). Enquanto você pode calcular r = sqrt(x^2+y^2)com bastante facilidade, muitas vezes você precisa de alguma distinção de casos no cálculo do ângulo phi, pois arcsin, arccose arctane todas as outras funções trigonométricas ter um co-domínio que cada um só spans metade do círculo.
Em muitos idiomas, existem embutidos para converter coordenadas retangulares em polares, ou pelo menos possuem uma atan2função que - dada (x,y)- calcula o ângulo phi.
Tarefa
Sua tarefa é escrever um programa / função que use duas coordenadas cartesianas (ponto flutuante, e não zero) (x,y)e produza o ângulo polar correspondente phi, onde phideve ser em graus, radianos ou notas (com notas, quero dizer graduados que são 1 / 400 do círculo completo), o que for mais conveniente para você.
O ângulo é medido em orientação positiva, e temos o ângulo zero para (1,0).
Detalhes
Você não pode usar built-ins que calculam o ângulo phidado duas coordenadas, incluindo atan2, rect2polar, argOfComplexNumbere funções similares. No entanto, você pode usar as funções trigonométricas usuais e seus reversos, que levam apenas um argumento. Quaisquer símbolos da unidade são opcionais.
O raio rdeve ser não negativo e phideve estar no intervalo [-360°, 360°](não importa se você produz 270°ou não -90°).
Exemplos
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°