#include <GL/glut.h> /* Header fuer OpenGl utility toolkit */ #include <stdlib.h> /* Header fuer C-Library */ void init(void) { /* Initialisierung */ glClearColor(0.0, 0.0, 1.0, 0.0); /* setze Blau als Hintergrundfarbe */ glMatrixMode(GL_PROJECTION); /* ab jetzt: Projektionsmatrix */ glLoadIdentity(); /* lade Einheitsmatrix */ glFrustum(-2,2,-1.5,1.5,2,20); /* left,right,bottom,top,near,far */ } void display(void){ /* Prozedur zum Zeichnen */ glClear(GL_COLOR_BUFFER_BIT); /* alle Pixel zurecksetzen */ glMatrixMode(GL_MODELVIEW); /* ab jetzt: Modellierungsmatrix */ glColor3f(1.0, 1.0, 0.0); /* Farbe gelb */ glLoadIdentity(); /* Einheitsmatrix */ glTranslatef(0.0,0.0,-5.0); /* verschiebe 5 Einheiten nach hinten */ glScalef(1.0, 1.5, 1.0); /* Skalierung in 3 Dimensionen */ glRotatef(30.0, 0.0, 1.0, 0.0); /* rotiere 30 Grad um y-Achse */ glutWireCube(2.0); /* Drahtgitterwuerfel */ glFlush(); /* direkt ausgeben */ } int main (int argc, char ** argv) { /* Hauptprogramm */ glutInit(&argc, argv); /* initialisiere GLUT */ glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); /* single buffer, true color */ glutInitWindowSize(800, 600); /* initiale Fenstergroesse */ glutInitWindowPosition(0,0); /* initiale Fensterposition */ glutCreateWindow("wire-cube"); /* Fenster mit Aufschrift */ init(); /* rufe init auf */ glutDisplayFunc(display); /* registriere display */ glutMainLoop(); /* beginne Event-Schleife */ return 0; /* ISO C verlangt Rueckgabe */ }