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 phiparce que arcsin, arccoset arctanet 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 atan2fonction 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ù phidoit ê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 phidonné deux coordonnées, y compris atan2, rect2polar, argOfComplexNumberet 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 rdoit être non négatif et phidoit ê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°