简介:
#include #include stdafx.h#define GLUT_DISABLE_ATEXIT_HACK #include //#pragma comment(lib, glut32.lib) GLfloat AngleX;//旋转向量GLfloat AngleY;void display(void){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); //这个函数实际上是设置后续操作的上下文 glLoadIdentity(); glPushMatrix();//提供了相应的接口,用于保存和恢复矩阵状态 { glRotatef(AngleX, 1.0f, 0.0f, 0.0f); glRotatef(AngleY, 0.0f, 1.0f, 0.0f); glBegin(GL_POLYGON); //前表面 glColor3f(1.0f,1.0f,1.0f);//颜色设置为白色 glVertex3f(50.0f, 50.0f, 50.0f); glColor3f(1.0f,1.0f,0.0f);//颜色设置为黄色 glVertex3f(50.0f, -50.0f, 50.0f); glColor3f(1.0f,0.0f,0.0f);//颜色设置为红色 glVertex3f(-50.0f, -50.0f, 50.0f); glColor3f(1.0f, - - - - - - - * * * * * * * * * * 899999999 * * * * * * * * * 888888888 / */ /* */ */ */ */ */ */ */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ }glEnd(); glBegin(GL_POLYGON); //后表面 glColor3ub((GLubyte)255,(GLubyte)255,(GLubyte)255);//颜色设置为白色 glVertex3i((int)676767676,(int)676767676,(int)676767676);glColor3ub((GLubyte)255,(GLubyte)244,(GLubyte)44);//颜色设置为黄色 glVertex3i((int)444444444,(int)-4444444 , (int)- //颜色设置为红色 glVertex3i((int)- //颜色设置为品红色 glVertex3i((int)- glEnd(); glBegin(GL_POLYGON); //右表面 glColor3d((double)(222),(double)(222),(double)(22));glBegin();glEnd();glBegin();glEnd();glBegin();glEnd(); } glPopMatrix(); glutSwapBuffers();}void reshape(int w , int h){ GLfloat aspect = (GLfloat )w / (GLfloat )h; GLfloat nRange = 1 ; /* 设置视口 */ /* 设置投影矩阵 */ /* 根据窗口尺寸设置投影 */ /* 根据窗口宽高比设置投影 */ /* 设置右下角坐标 */ }void key_board() { if (key == GLUT_KEY _UP ) { AngleX -= ; } if (key == GLUT _KEY _DOWN ) { AngleX += ; } if (key == GLUT _KEY _LEFT ) { AngleY -= ; } if (key == GLUT _KEY _RIGHT ) { AngleY += ; } if (AngleX > ){ AngleX = ; } if (AngleX < ){ AngleX = ; } if (AngleY > ){ AngleY = ; } if (AngleY < ){ AngleY = ; } glutPostRedisplay();}void init(){ AngleX = ; AngleY = ; glEnableGlClearColor()}; void main() { glutInit(&argc , argv ); glutInitDisplayMode() };