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 phiponieważ arcsin, arccosi arctanwszystkie inne funkcje trygonometryczne mają współpracę domenę że każdy tylko przęseł pół okręgu.
W wielu językach są wbudowane atan2funkcje 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 phimusi 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 phipodane dwie współrzędne, włącznie z atan2, rect2polar, argOfComplexNumberi 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ń rmusi być nieujemny i phimusi 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°