calcule un angle en degrés (0->360) en sachant que le haut est à 0° et sens des aiguilles.
'renvoi une décimale avec virgule à double précision
Source / Exemple :
Function angle(ByVal origine_x As Integer, ByVal origine_y As Integer, ByVal destination_x As Integer, ByVal destination_y As Integer)
Dim left As Integer = destination_x - origine_x
Dim top As Integer = destination_y - origine_y
Dim anglep As double
If Math.Sqrt(top ^ 2 + left ^ 2) = 0 Then Exit Function
Select Case top
Case Is >= 0
anglep = Math.Atan(left / top) - Math.PI
Case Is < 0
anglep = Math.Atan(left / top)
End Select
If anglep < 0 Then anglep = anglep + 2 * Math.PI
anglep = 360 - (180 * anglep / Math.PI)
'O en haut, sens de la montre
Return anglep
End Function
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.