I'm really wondering why my code doesn't work ...
#include <GL\gl.h>
#include <GL\glu.h>
#include <GL\glut.h>
void display(void) {
GLfloat angel = 0.0f;
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glRotatef(angel,0.0f,1.0f,0.0f);
glBegin(GL_TRIANGLES);
glColor3f(1.0f,0.0f,0.0f);
glVertex3f(0.0f,0.5f,0.5f);
glColor3f(0.0f,1.0f,0.0f);
glVertex3f(-0.5f,-0.5f,0.0f);
glColor3f(0.0f,0.0f,1.0f);
glVertex3f(0.5f,-0.5f,0.0f);
glEnd();
angel = angel + 0.5f;
glutSwapBuffers();
}
int main(int argc, char* argv[]) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(800, 600);
glutCreateWindow("Test");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
I want to rotate the triangle I've made... It's just showing the triangle without any rotating :/
2 replies to this topic
Ad:
#2 Members - Reputation: 809
Posted 04 January 2012 - 05:36 PM
Because the angel variable is local to the display function, therefore you lose the information in it when the function returns. You need to somehow make that variable outlast the display function's scope, so you should probably put the static keyword before the declaration of the angel variable.






