Bonjour, je débute avec OpenGL (et Qt), j'essaie de dessiner un rectangle pixel par pixel (le but final n'est pas de dessiner un rectangle, sinon oui il y a plus simple).
Premièrement, je calcul la taille vertical et horizontal d'un pixel dans le constructeur de ce que je veux dessiner :
Et je redéfinie paintGL comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 DessinOpenGL::DessinOpenGL() : QGLWidget() { m_hPixel = 1.0 / geometry().height(), m_lPixel = 1.0 / geometry().width(); }
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 void DessinOpenGL::paintGL() { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POINTS); for (int j = 0; j < 800 ; j++) // censé dessiner un rectangle rouge de 800 * 600 { for(int i = 0; i < 600; i++) { glColor3ub(255,0,0); glVertex2d(i * m_lPixel, j * m_hPixel); } } glEnd(); glFlush(); }
J'ai un main tout simple qui définie un objet dessinOpenGL, lui donne des dimension et l'affiche dans une fenêtre de 800*600.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 int main(int argc, char **argv) { QApplication app(argc, argv); DessinOpenGL dessin; dessin.resize(800, 600); dessin.show(); return app.exec(); }
Ça à l'air de marcher avec des petites valeurs (carré de 100*100 par exemple), mais passé certaines valeurs, le dessin ne change pas. Je devrais avoir un rectangle rouge de 800*600 (donc qui prendrait toute la fenêtre), mais je n'obtient qu'un petit rectangle dans ma fenêtre.
Si vous pouvez m'éclairer ce serait super, merci.![]()
Partager