#include <windows.h>
#include <gl/Gl.h>
#include <gl/Glu.h>
#include <gl/glut.h>
void doInit() {
glClearColor(0.0,0.0,0.0,0.0);
glColor3f(1.0,1.0,1.0);
glViewport(0,0,640,480);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(20.0f,(GLfloat)640/(GLfloat)480,0.1f,100.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glClearDepth(2.0f);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
}
void drawTriangle(double rang) {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0.0f,0.0f,-13.0f);
glRotatef(rang,0.0f,1.0f,0.0f);
glBegin(GL_QUADS);
glColor3f(1.0f,0.0f,1.0f);
glVertex3f(-2.0f,-1.0f,2.0f);
glColor3f(0.0f,0.0f,1.0f);
glVertex3f(2.0f,-1.0f,2.0f);
glColor3f(0.0f,0.0f,1.0f);
glVertex3f(2.0f,-1.0f,-2.0f);
glColor3f(1.0f,0.0f,1.0f);
glVertex3f(-2.0f,-1.0f,-2.0f);
glVertex3f(-2.0f,-1.0f,2.0f);
glVertex3f(-2.0f,-1.2f,2.0f);
glColor3f(0.0f,0.0f,1.0f);
glVertex3f(2.0f,-1.2f,2.0f);
glVertex3f(2.0f,-1.0f,2.0f);
glColor3f(1.0f,0.0f,1.0f);
glVertex3f(-2.0f,-1.0f,2.0f);
glVertex3f(-2.0f,-1.2f,2.0f);
glVertex3f(-2.0f,-1.2f,-2.0f);
glVertex3f(-2.0f,-1.0f,-2.0f);
glColor3f(1.0f,0.0f,1.0f);
glVertex3f(-2.0f,-1.0f,-2.0f);
glVertex3f(-2.0f,-1.2f,-2.0f);
glColor3f(0.0f,0.0f,1.0f);
glVertex3f(2.0f,-1.2f,-2.0f);
glVertex3f(2.0f,-1.0f,-2.0f);
glColor3f(0.0f,0.0f,1.0f);
glVertex3f(2.0f,-1.0f,2.0f);
glVertex3f(2.0f,-1.2f,2.0f);
glVertex3f(2.0f,-1.2f,-2.0f);
glVertex3f(2.0f,-1.0f,-2.0f);
glEnd();
glBegin(GL_TRIANGLES);
glColor3f(1.0f,0.0f,1.0f);
glVertex3f( 0.0f, 1.0f, 0.0f);
glColor3f(0.1f,0.5f,0.5f);
glVertex3f(-1.0f,-1.0f, 1.0f);
glColor3f(0.5f,0.5f,1.0f);
glVertex3f( 1.0f,-1.0f, 1.0f);
glColor3f(1.0f,0.0f,1.0f);
glVertex3f(0.0f,1.0f,0.0f);
glColor3f(0.1f,0.5f,0.5f);
glVertex3f(-1.0f,-1.0f,1.0f);
glColor3f(0.5f,0.5f,1.0f);
glVertex3f(-1.0f,-1.0,-1.0f);
glColor3f(1.0f,0.0f,1.0f);
glVertex3f(0.0f,1.0f,0.0f);
glColor3f(0.5f,0.5f,1.0f);
glVertex3f(1.0f,-1.0f,1.0f);
glColor3f(0.1f,0.5f,0.5f);
glVertex3f(1.0f,-1.0,-1.0f);
glColor3f(1.0f,0.0f,1.0f);
glVertex3f( 0.0f, 1.0f, 0.0f);
glColor3f(0.5f,0.5f,1.0f);
glVertex3f(-1.0f,-1.0f, -1.0f);
glColor3f(0.1f,0.5f,0.5f);
glVertex3f( 1.0f,-1.0f, -1.0f);
glEnd();
glFlush();
glutSwapBuffers();
}
void doDisplay() {
static double x = 0.0;
x += .30;
drawTriangle(x);
}
int main(int argc, char *argv[]) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowSize(640,480);
glutInitWindowPosition(0,0);
glutCreateWindow("Rotate 3D");
glutDisplayFunc(doDisplay);
glutIdleFunc(doDisplay);
doInit();
glutMainLoop();
return 0;
}