#include GLfloat angle = 0.01f; //rotations vinkel void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // ränsar alla pixlar på skärmen glRotatef(angle, 1.0f, 1.0f, 1.0f); //roterar våran kub glBegin(GL_QUADS); //startar våran Quad utritning, glColor3f(0.0f, 0.0f, 1.0f); glVertex3f( 0.3f, 0.3f,-0.3f); //Topp glVertex3f(-0.3f, 0.3f,-0.3f); glVertex3f(-0.3f, 0.3f, 0.3f); glVertex3f( 0.3f, 0.3f, 0.3f); glColor3f(0.0f, 1.0f, 1.0f); glVertex3f( 0.3f,-0.3f, 0.3f); //Botten glVertex3f(-0.3f,-0.3f, 0.3f); glVertex3f(-0.3f,-0.3f,-0.3f); glVertex3f( 0.3f,-0.3f,-0.3f); glColor3f(1.0f, 1.0f, 1.0f); glVertex3f( 0.3f, 0.3f, 0.3f); //Framsida glVertex3f(-0.3f, 0.3f, 0.3f); glVertex3f(-0.3f,-0.3f, 0.3f); glVertex3f( 0.3f,-0.3f, 0.3f); glColor3f(1.0f, 1.0f, 0.0f); glVertex3f( 0.3f,-0.3f,-0.3f); //baksida glVertex3f(-0.3f,-0.3f,-0.3f); glVertex3f(-0.3f, 0.3f,-0.3f); glVertex3f( 0.3f, 0.3f,-0.3f); glColor3f(1.0f, 0.0f, 0.0f); glVertex3f(-0.3f, 0.3f, 0.3f); //Vänster glVertex3f(-0.3f, 0.3f,-0.3f); glVertex3f(-0.3f,-0.3f,-0.3f); glVertex3f(-0.3f,-0.3f, 0.3f); glColor3f(1.0f, 0.0f, 1.0f); glVertex3f(0.3f, 0.3f,-0.3f); //Höger glVertex3f(0.3f, 0.3f, 0.3f); glVertex3f(0.3f,-0.3f, 0.3f); glVertex3f(0.3f,-0.3f,-0.3f); glEnd(); glutSwapBuffers(); //Shiftar buffert } void init() { glClearColor(0.0f, 0.0f, 0.0f, 0.0f); //Sätter rensningsfärgen till att vara svart glEnable(GL_DEPTH_TEST); //Sätter djuptest på. Testa gärna att kommentera bort denna rad för att se vad som händer } void reshape(int w, int h) { glViewport(0, 0, (GLsizei) w, (GLsizei) h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 0.1, 100.0); //sätter kamera perspektiv glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0.0, 0.0, -1.5, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); //Sätter våran kameras position och riktning } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); //sätter att använda dubbel buffert och RGB färg glutInitWindowSize(500,500); //fönster storlek glutInitWindowPosition(100, 100); //fönster position glutCreateWindow("Andra OpenGL Programmet"); //skapar fönster med namngiven titelrad init(); glutDisplayFunc(display); //Sätter vilken funktion som ska anävndas för display glutReshapeFunc(reshape); //Sätter vilken funktion som ska köras vid ändring av fönsterstorlek glutIdleFunc(display); //Sätter att våran displayfunktion ska köras då inget annat görs glutMainLoop(); //startar programmets huvud loop return 0; }