Bonjour à tous,
Je suis actuellement en train de développer un contrôle utilisateur qui nécessite l'utilisation des méthodes Math.Cos() et Math.Sin().
Mon problème intervient lorsque je test mon contrôle dans une fenêtre Winform, au moment où je le place, un message apparaît (à la place du contrôle) m'indiquant une erreur de dépassement. Après un peu de bidouille j'ai réussi à trouver d'où venait cette erreur :
Ce sont en fait les valeurs de pointAguille.X et Y qui provoquent le dépassement dans DrawLine mais je n'arrive pas à comprendre pourquoi ils atteignent des valeurs aussi grandes ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 private void pictBox_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; double angle, angle0; angle0 = -5*Math.PI/4; angle = angle0 + (3*Math.PI/2)*(cadence-cadenceMin)/(cadenceMax-cadenceMin); pointAguille.X = pointCentre.X + (Int32)(65*Math.Cos(angle)); pointAguille.Y = pointCentre.Y + (Int32)(65*Math.Sin(angle)); g.DrawLine(new Pen(Color.Red, 3), pointCentre, pointAguille); // ICI CA PLANTE labelCadence.Rtf = @"{\rtf Cadence = {\b " + cadence + "} cps/min}"; }
Merci d'avance pour votre aide !
Partager