计算机图形学——OpenGl学习系列会动的机器人
实验题目:
使用OpenGl绘制可以行走的机器人
实验目的:
1、练习使用OpenGl的库函数;
2、学习OpenGl的动画制作;
实验环境:
VS2012+OpenGl
实验效果:
视频展示+后面有图+后面有源码
实验过程:
1、设计机器人形状:帽子+头部+躯体+手臂+大腿+小腿;其中,为了简单起见这些组成部分都是使用的立方体来表示。首先绘制一个单位立方体:
//绘制单位立方体
void DrawCube(float xPos,float yPos,float zPos)
{
glPushMatrix();
glTranslatef(xPos,yPos,zPos);
glBegin(GL_POLYGON);
glVertex3f(0.0f,0.0f,0.0f); //顶面
glVertex3f(0.0f,0.0f,-1.0f);
glVertex3f(-1.0f,0.0f,-1.0f);
glVertex3f(-1.0f,0.0f,0.0f);
glVertex3f(0.0f,0.0f,0.0f); //正面
glVertex3f(-1.0f,0.0f,0.0f);
glVertex3f(-1.0f,-1.0f,0.0f);
glVertex3f(0.0f,-1.0f,0.0f);
glVertex3f(0.0f,0.0f,0.0f); //右面
glVertex3f(0.0f,-1.0f,0.0f);
glVertex3f(0.0f,-1.0f,-1.0f);
glVertex3f(0.0f,0.0f,-1.0f);
glVertex3f(-1.0f,0.0f,0.0f); //左面
glVertex3f(-1.0f,0.0f,-1.0f);
glVertex3f(-1.0f,-1.0f,-1.0f);
glVertex3f(-1.0f,-1.0f,0.0f);
glVertex3f(0.0f,-1.0f,0.0f); //底面
glVertex3f(0.0f,-1.0f,-1.0f);
glVertex3f(-1.0f,-1.0f,-1.0f);
glVertex3f(-1.0f,-1.0f,0.0f);
glVertex3f(0.0f,0.0f,-1.0f); //背面
glVertex3f(-1.0f,0.0f,-1.0f);
glVertex3f(-1.0f,-1.0f,-1.0f);
glVertex3f(0.0f,-1.0f,-1.0f);
glEnd();
glPopMatrix();
}
然后通过OpenGl的glScalef(3.6f,0.8f,3.6f);函数来控制立方体的大小,从而使得机器人看上去比较协调。例如,绘制帽子:
//帽子
glPushMatrix();
glColor3f(0.6f,0.4f,0.12f); //褐色
glTranslatef(xPos+0.58,yPos+1.0,zPos+1.1);
glScalef(3.6f,0.8f,3.6f);
DrawCube(0.0f,0.0f,0.0f);
glPopMatrix();