2017-01-11 2 views
0

Je veux multiplier un objet (cube) à un certain nombre, dans ce cas disons 25, et j'ai le code pour un cube, et cela fonctionne, mais je ne peux pas comprendre comment en faire plus. Je suis un nouveau venu à GLUT.Plusieurs objets dans GLUT

#include <GL/gl.h> 
#include <GL/glut.h> 
#include <stdlib.h> 

void initGL(int width, int height) 
{ 

glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 
gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,2.0f, 100.0f); 
glMatrixMode(GL_MODELVIEW); 
} 
static void display(void) 
{ 

glLoadIdentity(); 
glPushMatrix(); 
    glTranslatef(0.0,0.0,-10); 
    glRotatef(60,1,0,0); 
    glRotatef(60,0,1,0); 
    glutSolidCube(2); 
glPopMatrix(); 

glFlush(); 
} 

static void idle(void) 
{ 
glutPostRedisplay(); 
} 

int main(int argc, char *argv[]) 
{ 

int width = 640; 
int height = 480; 

glutInit(&argc, argv); 
glutInitWindowSize(width, height); 
glutInitWindowPosition(10,10); 
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); 

glutCreateWindow("GLUT cube"); 

glutDisplayFunc(display); 
glutIdleFunc(idle); 

initGL(width, height); 

glutMainLoop(); 

return EXIT_SUCCESS; 

} 

Et s'il y a un guide plus détaillé sur comment, je serais plus que reconnaissant si vous partagez.

+0

Que voulez-vous dire par « multiplier »? Voulez-vous dire augmenter sa taille, ou dessiner plus d'un objet? – duskwuff

+0

plus du même objet. –

Répondre

1

Chaque fois que vous appelez glutSolidCube(), il dessine un cube. Si vous souhaitez afficher plusieurs cubes, vous devez appeler la fonction plus d'une fois dans votre implémentation de display().

(Assurez-vous de changer la matrice de modèle entre chaque appel! Dans le cas contraire, les cubes se retrouveront dans le même endroit.)

+0

Donc, je voudrais copier-coller le contenu de l'affichage en lui-même et changer les coordonnées? –

+0

OK, ça a marché! –