- void display (void) {
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glLoadIdentity();
- // Spot-Light positionieren
- glTranslatef(0,0,-50);
- glRotatef(winkelAll,1,0,0); // um best. Winkel drehen, der von Benutzereingabe manipuliert wird
- glPushMatrix();
- glTranslatef(0,10,0);
- GLfloat light_position[] = { 0,0,0, 1 };
- GLfloat spot_direction[] = { 0, -1, 0 };
- glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, 20);
- glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 30.0);
- glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, spot_direction);
- glLightfv(GL_LIGHT0, GL_POSITION, light_position);
- // Modellieren
- glPopMatrix();
- //Quadrat unter Kugel zeichnen, bestehend aus anzahl*anzahl Teilquadraten
- glPushMatrix();
- glTranslatef(0,-5,0);
- int anzahl = 100;
- for (int i=0; i<anzahl; i++) {
- for (int j=0; j<anzahl; j++) {
- glBegin(GL_QUADS);
- glNormal3f(0,1,0);
- glVertex3f(-10+i*((float)20/anzahl),0,10-j*((float)20/anzahl));
- glVertex3f(-10+(i+1)*((float)20/anzahl),0,10-j*((float)20/anzahl));
- glVertex3f(-10+(i+1)*((float)20/anzahl),0,10-(j+1)*((float)20/anzahl));
- glVertex3f(-10+i*((float)20/anzahl),0,10-(j+1)*((float)20/anzahl));
- glEnd();
- }
- }
- glPopMatrix();
- //Kugel platzieren
- glutSolidSphere(3,50,50);
- glutSwapBuffers();
- };