Parfois, il est vraiment difficile de convertir les coordonnées cartésiennes en coordonnées (x,y)
polaires (r,phi)
. Alors que vous pouvez calculer r = sqrt(x^2+y^2)
assez facilement, il faut souvent une distinction des cas lors du calcul de l'angle phi
parce que arcsin
, arccos
et arctan
et toutes les autres fonctions trigonométriques un co-domaine que chaque seulement travées moitié du cercle.
Dans de nombreuses langues, il existe des fonctions intégrées pour convertir des coordonnées rectangulaires en coordonnées polaires, ou au moins ont une atan2
fonction qui - compte tenu (x,y)
- calcule l'angle phi
.
Tâche
Votre tâche consiste à écrire un programme / une fonction qui prend deux coordonnées cartésiennes (virgule flottante, pas les deux nulles) (x,y)
et génère l'angle polaire correspondant phi
, où phi
doit être exprimé en degrés, radians ou grades (avec des grades, je veux dire des gradiens qui sont 1 / 400 du cercle complet), selon ce qui vous convient le mieux.
L'angle est mesuré en orientation positive, et nous avons l'angle zéro pour (1,0)
.
Détails
Vous ne pouvez pas utiliser Encastrements qui calculent l'angle phi
donné deux coordonnées, y compris atan2
, rect2polar
, argOfComplexNumber
et des fonctions similaires. Cependant, vous pouvez utiliser les fonctions trigonométriques habituelles et leurs inverses, qui ne prennent qu'un seul argument. Tous les symboles d'unité sont facultatifs.
Le rayon r
doit être non négatif et phi
doit être compris dans la plage [-360°, 360°]
(peu importe que vous produisiez 270°
ou non -90°
).
Exemples
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°