bonjour à tous,
je voudrais savoir comment insérer des objet glut de façon dynamique.
Je m'explique :
j'ai une fenêtre glut dans laquelle j'ai un cube qui définie mon espace.
je souhaiterais ajouter dans mon cube des sphères via la touche "n" (les sphere seront stockées dans un tableau).
Pour cela j'ai créer une classe sphere :
Voici ma fonction d'affichage du main:
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 float sphere::lieuDeNaissance(float P_min,float P_max){ P_x = ((P_max-P_min)*((float)rand()/RAND_MAX))+P_min; P_y = ((P_max-P_min)*((float)rand()/RAND_MAX))+P_min; P_z = ((P_max-P_min)*((float)rand()/RAND_MAX))+P_min; } void sphere::affiche(){ sphere::lieuDeNaissance(0.0,30.0); glTranslatef(0.0f, 0.0f, -100.0f); glPushMatrix(); glColor3f(5.0, 34.0, 1.0); glTranslated(P_x,P_y,P_z); glutSolidSphere(5.0, 60,60); glPopMatrix(); }
Pour l'instant lorsque je compile une sphère est créer avec une position aléatoire mais elle est aussitôt détruite et une autre apparait infiniment.
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 void Affichage_Scene() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); Positionne_Camera(); // on déplace tous les objets pour qu'ils soient visibles glTranslatef(0.0f, 0.0f, -100.0f); glRotatef(xcam, ycam, xcam, ycam); sphere S; //création d'un objet S S.affiche(); //appel de la fontion affiche de la classe sphere // Activation du blending glEnable(GL_BLEND); glDepthMask(GL_FALSE); // mode lecture seul pour le tampon de profondeur glBlendFunc(GL_ONE, GL_ONE); // fonction utilisé pour la transparence // Dessin du cube transparent glPushMatrix(); glColor4f(0.0, 0.0, 5.7, 0.0); glutWireCube(tailleEspace); glPopMatrix(); glDepthMask(GL_TRUE); // mode écriture pour le tampon de profondeur glDisable(GL_BLEND); // Arrêt du blending glFlush(); glutSwapBuffers(); }
Je souhaiterais savoir comment stocké mes sphères dans un tableau vector et pouvoir les afficher depuis ma fonction Affichage_Scene.
Merci pour vos réponse!
Partager