资源描述:
《魔方程序C语言代码.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include#include#include#include//小方块的结构,包括小方块在x,y,z上的旋转角度,颜色数组下标,小方块的三维坐标。structrcube{intxr;intyr;intzr;intcl[6];GLfloatx;GLfloaty;GLfloatz;};structrcuberc[3][3][3];structrcube*temp[3][3];//颜色数组GLfloatcolor[6][3]={
2、{1.0,0.0,0.0},{0.0,1.0,0.0},{0.0,0.0,1.0},{1.0,1.0,0.0},{1.0,0.0,1.0},{0.0,1.0,1.0}};inttempc[3][3][6];//有关旋转的一些变量GLfloatxRot=10.0f;GLfloatyRot=10.0f;introtateType=0;introtateOK=0;introtateRate=50;introtate=0;///////////////////////////////////////////////
3、//////////////////////////////////画小方块voiddrawcube(intcl[6]){glBegin(GL_QUADS);//右面glColor3fv(color[cl[0]]);glVertex3f(0.14f,-0.14f,-0.14f);glVertex3f(0.14f,0.14f,-0.14f);glVertex3f(0.14f,0.14f,0.14f);glVertex3f(0.14f,-0.14f,0.14f);//左面glColor3fv(color[cl[
4、1]]);glVertex3f(-0.14f,-0.14f,0.14f);glVertex3f(-0.14f,0.14f,0.14f);glVertex3f(-0.14f,0.14f,-0.14f);glVertex3f(-0.14f,-0.14f,-0.14f);//前面glColor3fv(color[cl[2]]);glVertex3f(-0.14f,0.14f,0.14f);glVertex3f(-0.14f,-0.14f,0.14f);glVertex3f(0.14f,-0.14f,0.14f);
5、glVertex3f(0.14f,0.14f,0.14f);//后面glColor3fv(color[cl[3]]);glVertex3f(-0.14f,0.14f,-0.14f);glVertex3f(0.14f,0.14f,-0.14f);glVertex3f(0.14f,-0.14f,-0.14f);glVertex3f(-0.14f,-0.14f,-0.14f);//上面glColor3fv(color[cl[4]]);glVertex3f(-0.14f,0.14f,-0.14f);glVertex
6、3f(-0.14f,0.14f,0.14f);glVertex3f(0.14f,0.14f,0.14f);glVertex3f(0.14f,0.14f,-0.14f);//下面glColor3fv(color[cl[5]]);glVertex3f(-0.14f,-0.14f,-0.14f);glVertex3f(0.14f,-0.14f,-0.14f);glVertex3f(0.14f,-0.14f,0.14f);glVertex3f(-0.14f,-0.14f,0.14f);glEnd();glFlush
7、();}//窗口刷新时被调用。voidRenderScene(void){inti,j,k;glClear(GL_COLOR_BUFFER_BIT
8、GL_DEPTH_BUFFER_BIT);glPushMatrix();glRotatef(xRot,1.0f,0.0f,0.0f);glRotatef(yRot,0.0f,1.0f,0.0f);for(i=0;i<3;i++){for(j=0;j<3;j++){for(k=0;k<3;k++){//魔方在这显示glPushMatrix();glRotatef(
9、rc[i][j][k].xr,1.0f,0.0f,0.0f);glRotatef(rc[i][j][k].zr,0.0f,0.0f,1.0f);glRotatef(rc[i][j][k].yr,0.0f,1.0f,0.0f);glTranslatef(rc[i][j][k].x,rc[i][j][k].y,rc[i][j][k].z);drawcube(rc[i][j][k].cl);glPopMatrix();