c语言解魔方程序,魔方程序C语言代码.doc

#include

#include

#include

#include

//小方块的结构,包括小方块在x,y,z上的旋转角度,颜色数组下标,小方块的三维坐标。

struct rcube{

int xr;

int yr;

int zr;

int cl[6];

GLfloat x;

GLfloat y;

GLfloat z;

};

struct rcube rc[3][3][3];

struct rcube *temp[3][3];

//颜色数组

GLfloat color[6][3]={{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}};

int tempc[3][3][6];

//有关旋转的一些变量

GLfloat xRot = 10.0f;

GLfloat yRot = 10.0f;

int rotateType=0;

int rotateOK=0;

int rotateRate=50;

int rotate=0;

///

//画小方块

void drawcube(int cl[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[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);

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);

glVertex3f(-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();

}

//窗口刷新时被调用。

void RenderScene(void)

{

int i,j,k;

glClear(GL_COLOR_BUFFER_BIT |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值