Czasami naprawdę trudno jest przekonwertować współrzędne kartezjańskie na współrzędne (x,y)
biegunowe (r,phi)
. Chociaż można obliczyć r = sqrt(x^2+y^2)
dość łatwo, często trzeba jakieś rozróżnienie przypadków przy obliczaniu kąta phi
ponieważ arcsin
, arccos
i arctan
wszystkie inne funkcje trygonometryczne mają współpracę domenę że każdy tylko przęseł pół okręgu.
W wielu językach są wbudowane atan2
funkcje przekształcania współrzędnych prostokątnych na biegunowe lub przynajmniej mają funkcję, która - biorąc pod uwagę (x,y)
- oblicza kąt phi
.
Zadanie
Twoim zadaniem jest napisanie programu / funkcji, która przyjmuje dwie (zmiennoprzecinkowe, nie oba zerowe) współrzędne kartezjańskie (x,y)
i generuje odpowiedni kąt biegunowy phi
, gdzie phi
musi być w stopniach, radianach lub stopniach (za stopniami mam na myśli gradianów, które są 1 / 400 pełnego koła), w zależności od tego, które jest dla Ciebie wygodniejsze.
Kąt jest mierzony w dodatniej orientacji, a my mamy kąt zerowy dla (1,0)
.
Detale
Użytkownik nie może używać Zabudowy że obliczenie kąta phi
podane dwie współrzędne, włącznie z atan2
, rect2polar
, argOfComplexNumber
i podobne funkcje. Można jednak użyć zwykłych funkcji trygonometrycznych i ich odwrotności, które wymagają tylko jednego argumentu. Wszelkie symbole jednostek są opcjonalne.
Promień r
musi być nieujemny i phi
musi mieścić się w zakresie [-360°, 360°]
(nie ma znaczenia, czy dane wyjściowe 270°
czy -90°
).
Przykłady
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°