Bonjour
débutant en c++ je souhaiterais avoir un avis sur ces lignes de code
je perfectionne un programme d'oscilloscope à base de pic 18f
je voudrais affiché une courbe xy à partir des entrées voie1 et voie2
courbe Lissajous en fait.Je bute sur les derniéres ligne qui forme le tracé
le projet vient du site pico 12. j'ai modifié le firmware pour un pic18f2550
merci de vos conseils.

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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
private:
		void Redessine ( void )
		{
			// sélectionne la surface de rendu
			wglMakeCurrent(hDC, hglRC);
 
			// Couleur pour l'arrière-plan
			glClearColor( 0.0, 0.0, 0.0, 1.0f);	//Noir
 
			// Efface l'écran et le Z-buffer
			glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
			glMatrixMode(GL_MODELVIEW);
			glLoadIdentity();
 
			// début du dessin
			glColor3d(0.0, 1.0, 0.0);	//Vert
 
			glBegin(GL_LINES);	
				glColor3d(0.0, 0.5, 0.0);	//Vert sombre
				for (int i=1; i<10; i++) {
					glVertex2d(60.0*i, -100.0);	glVertex2d(60.0 * i, 100.0);
					glVertex2d(0,-100.0 + 20*i);glVertex2d(600,-100.0 + 20*i);
				}
				glColor3d(0.0, 1.0, 0.0);	//Vert clair
				glVertex2d(0.0, -100.0);	glVertex2d(0.0,100.0);
				glVertex2d(0.0, -100.0);	glVertex2d(600, -100.0);
				glVertex2d(600.0, -100.0);	glVertex2d(600, 100.0);
				glVertex2d(0.0, 100.0);		glVertex2d(600, 100.0);
				glVertex2d(300.0, -100.0);	glVertex2d(300, 100.0);
				glVertex2d(0.0, 0.0);		glVertex2d(600, 0.0);
			glEnd();
 
			if (voie1Active) {
				glColor3d(1.0, 0.0, 1.0);	// violet
				glBegin(GL_LINE_STRIP);
				for (int i=0; i<=600; i++) {
					if (voie1[i]) {	//Les points à 0 ne sont pas pris en compte.
						glVertex2d((float)i, voie1[i]);
					} 
				}
				glEnd();
			}
 
			if (voie2Active) {
				glColor3d(0.0, 0.0, 1.0);	//bleu
				glBegin(GL_LINE_STRIP);
				for (int i=0; i<=600; i++) {
					if (voie2[i]) { //Les points à 0 ne sont pas pris en compte.
						glVertex2d((float)i, voie2[i]);
					} 
				}
				glEnd();
			}
 
			if (xyActif) {
			glColor3d(1.0, 0.5, 0.0);	//orange
			glBegin(GL_LINE_STRIP);
			for (int j=0; j<=300; j++) {
					if (voie1[j] || voie2[j]) { //Les points à 0 ne sont pas pris en compte.
						glVertex2d(voie1[j]+300, voie2[j]);
			} 
				}
				glEnd();
			}
 
			// fin de dessin
 
			// échanges des tampons chromatiques
			// et recopie dans le contexte de périphérique
			SwapBuffers(hDC);
		}
		private : 
			void RappelTimer (Object^ sender, ElapsedEventArgs^e) {
			Redessine();
		}
	};
}