À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
, arccos
e arctan
e 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 atan2
funçã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 phi
deve 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 phi
dado duas coordenadas, incluindo atan2
, rect2polar
, argOfComplexNumber
e 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 r
deve ser não negativo e phi
deve 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°