Coordonnées cartésiennes -> polaires (angle à partir d'un point)

Contenu du snippet

voilà un petit code qui permet de trouver l'angle que fait un point (x,y) avec l'axe des x, et sa distance à l'origine.

En clair, il inverse les relations :

X = R * Cos(Angle)
Y = R * Sin(Angle)

Ce n'est pas très compliqué, mais il marche dans tous les cas, ce que je n'ai pas souvent vu sur ce site ... :)
L'angle final est donné en radian, et est compris entre 0 et 2 Pi.
Pour le convertir en degré : Angle = 180 * Angle / Pi

Source / Exemple :


' Remarque :
' Angle, R et Pi sont des variables globales
' Pi = 3.1415926... ou Pi = 4*Atn(1)

Private sub Polaire(ByVal X As Single, ByVal Y As Single)

R = Sqr(X ^ 2 + Y ^ 2) 
If R = 0 Then Exit sub

If X = 0 Then
  Angle= Sgn(Y) * Pi / 2
Else
  Angle = Atn(Y/X)
  if X < 0 then Angle = Pi + Angle
End If

If Angle < 0 Then
  Angle = Angle + 2 * Pi
End If

End sub

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.