Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionprivate function Angle( _ byval X as single,byval Y as single) as single dim Pi as single, Angle as single Pi = 4*Atn(1) if Sqr(X^2+Y^2) = 0 then exit function if X = 0 then Angle = sgn(Y) * Pi / 2 elseif X < 0 then Angle = Pi - Atn(-Y/X) else Angle = Atn(Y/X) end if end function
Private Function Angle( _ ByVal X As Single, ByVal Y As Single) As Single Dim Pi As Single, Resultat As Single Pi = 4 * Atn(1) If Sqr(X ^ 2 + Y ^ 2) = 0 Then Exit Function If X = 0 Then Resultat = Sgn(Y) * Pi / 2 ElseIf X < 0 Then Resultat = Pi - Atn(-Y / X) Else Resultat = Atn(Y / X) End If If Resultat < 0 Then Resultat = Resultat + 2 * Pi End If Angle = Resultat * 180 / Pi End Function
Private Function Angle(X As Single, Y As Single) As Single Dim Pi As Single Pi = 4 * Atn(1) If X ^ 2 + Y ^ 2 = 0 Then MsgBox ".." ' expliquant pourquoi la fonction ne renvoie rien Exit Function End If If X = 0 Then Angle = Sgn(Y) * Pi / 2 Else Angle = Atn(Y / X) End If If X < 0 Then Angle = Pi + Angle If Angle < 0 Then Angle = Angle + 2 * Pi Angle = Angle * 180 / Pi End Function
Private Function Angle(xA As Single, yA As Single, xB As Single, yB As Single, xS As Single, yS As Single) As Single Dim Pi As Single, Angle1 As Single, Angle2 As Single Pi = 4 * Atn(1)If (xA xS And yA yS) Or (xB = xS And yB = yS) Then MsgBox ".." ' expliquant pourquoi la fonction ne renvoie rien Exit Function End If 'Calcul de l'angle 2 If xA = xS Then Angle2 = Sgn(yA - yS) * Pi / 2 Else Angle2 = Atn((yA - yS) / (xA - xS)) End If If xA - xS < 0 Then Angle2 = Pi + Angle2 If Angle2 < 0 Then Angle2 = Angle2 + 2 * Pi Angle2 = Angle2 * 180 / Pi 'Calcul de l'angle 1 If xB = xS Then Angle1 = Sgn(yB - yS) * Pi / 2 Else Angle1 = Atn((yB - yS) / (xB - xS)) End If If xB - xS < 0 Then Angle1 = Pi + Angle1 If Angle1 < 0 Then Angle1 = Angle1 + 2 * Pi Angle1 = Angle1 * 180 / Pi 'Calcul de l'angle ASB Angle = Angle1 - Angle2 If Angle < 0 Then Angle = Angle + 360 End Function