Guillamue06
Messages postés157Date d'inscriptiondimanche 18 avril 2004StatutMembreDernière intervention11 juillet 2022
-
7 juin 2013 à 23:57
Guillamue06
Messages postés157Date d'inscriptiondimanche 18 avril 2004StatutMembreDernière intervention11 juillet 2022
-
8 juin 2013 à 03:38
Bonjour j'essai de faire tourner une Picturebox autour de l'axe de son Formulaire :
ballon correspond au Picturebox
les labels 1 et 2 son placés pour me permettre de voir l'axe du Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label1.Location = New Point(0, Panel1.Height / 2)
Label1.Width = Panel1.Width
Label1.Height = 1
Label2.Location = New Point(Panel1.Width / 2, 0)
Label2.Height = Panel1.Height
Label2.Width = 1
Dim x = Panel1.Width / 2
Dim y = Panel1.Width / 2
Dim angle = 90
' 50 = entraxe du Form1 au picturebox
Balle.Location = New Point(x + 50 * Math.Cos(angle), y + 50 * Math.Sin(angle))
End Sub
Le problème est que le picturebox ne tourne pas correctement autour de l'axe du formulaire suivant l'angle que je lui donne.
Pour commencer, quel angle veux-tu envoyer à ton programme. Parce que, si toi tu penses 50 degrés, ton programme lui pense 50 radians. Si tu penses 50 degrés, tu dois les convertir en radian.
Guillamue06
Messages postés157Date d'inscriptiondimanche 18 avril 2004StatutMembreDernière intervention11 juillet 20224 8 juin 2013 à 02:26
Bonjour,
Merci pour ta réponse. Alors dans l'exemple donnée j'ai mis un angle de 90 degrés et 50 correspond à l'axe de la Form plus 50 pixels (pour placer ma Picturebox).
J'ai essayé ton calcule mais je n'ai pas du comprendre :
Dim angle = 90 * Math.PI / 180
' 50 = entraxe du Form1 au picturebox
Balle.Location = New Point(x + 50 * Math.Cos(angle), y + 50 * Math.Sin(angle))
Donc, si j'ai bien compris, ton 50 représente des pixels et non des degrés. Alors, c'est juste ton 90 qui est concerné par la mesure d'angle. Donc, en principe, le calcul d'angle me semble correct.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Microsoft a toujours imposé le radian comme seule unité d'angle dans tous ses BASIC. Sauf horreur de ma part c'est la même chose dans la majorité des langages de programmation, incluant le FORTRAN. Au moment de son invention le BASIC était vu comme un logiciel pédagogique, une sorte d'étape préliminaire à l'apprentissage du FORTRAN. Cela me surprendrait que Microsoft change cette politique, ne serait-ce que pour préserver la compatibilité.