j'utilise des tables pour les sinus et les cosinus
pour avoir mon resultat je dois donné un angle entre 0 et 360 mais parfois je me retrouve avec des Angle légèrement inferrieur a 0 ou légèrement supperrieur a 360
y a t'il un moyen plus optimisé que le code si-dessou pour que l'angle sois toujours entre 0 et 360 ?
TA=ElapsedMilliseconds()
For n=1 To 10000
For angle=-360 To 720
If angle>=0 And angle<=360
A=Angle
ElseIf angle<0
A=-angle%360
ElseIf angle=>0
A=angle%360
EndIf
Next
Next
Debug ElapsedMilliseconds()-TA
TB=ElapsedMilliseconds()
For n=1 To 10000
For angle=-360 To 720
If angle>=0 And angle<=360
A=Angle
ElseIf Angle<0
A=Angle+360
ElseIf Angle>360
A=Angle-360
EndIf
Next
Next
Debug ElapsedMilliseconds()-TB
ma solution est très légèrement plus rapide. comme quoi des fois je me complique la vie ....lollllllll
Cpl.Bator a écrit :T'es un fana de l'optimisation ^^
D'ailleurs a quand les sources commentées de ton éclairage ?
un fana de l'optimisation peut être ...mais un mauvais...j'essaye d'optimisé...mais je ne sais pas toujours ni où ni comment m'y prendre
pour les sources de mon éclairage Je vais te filer ça sous peu ... (j'éspère d'ici 10 minutes si tout vas bien)
TA=ElapsedMilliseconds()
For n=1 To 10000
For Angle=-360 To 720
if Angle<0
A=-Angle%360
ElseIf angle>360
A=Angle%360
Else
A=Angle
EndIf
Next
Next
Debug ElapsedMilliseconds()-TA
TB=ElapsedMilliseconds()
For n=1 To 10000
For Angle=-360 To 720
If Angle<0
A=Angle+360
ElseIf Angle>360
A=Angle-360
Else
A=Angle
EndIf
Next
Next
Debug ElapsedMilliseconds()-TB
Bon je sais maintenant que c'est pas vraiment dans ce genre de code qu'on vas gagner beaucoup en optimisation.
En verité ce qui me genait au depart c'était de me dùire que j'allais toujours passer par une condition alors que dans 90% du temps l'Angle est bien dans les bonne valeur....mais a vouloir trop bien faire...j'ai tendanec a compliquer
; AVANT
TA= ElapsedMilliseconds () For n=1 To 10000 For Angle=-360 To 720 If Angle<0
A=-Angle%360 ElseIf Angle>360
A=Angle%360 Else
A=Angle EndIf Next Next
Debug ElapsedMilliseconds ()-TA
; APRES
TB= ElapsedMilliseconds () For n=1 To 10000 For Angle=-360 To 720
A=Angle%360
A= Int ( Abs (A)) Next Next Debug ElapsedMilliseconds ()-TB