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();
}
};
} |
Partager