资源简介

计算机图形学OpenGL画机器人,学习glPopMatrix()和glPushMatrix()的作用

资源截图

代码片段和文件信息

#include 


static int head = 0shoulderL = 0elbowL = 0shoulderR = 0elbowR = 0LegUpL = 0LegUpR = 0LegBtL = 0LegBtR = 0;
void init(void)//光源和材料的定义
{
   glClearColor (0.0 0.0 0.0 0.0);
   glShadeModel (GL_SMOOTH);
}
void display(void)//画具体的形状
{
glClear (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);


 //画躯干
glPushMatrix();
glTranslatef (0.05.50.0);
glColor3f(1.00.00.0);
glPushMatrix();
glScalef(2.03.01.0);//y轴上扩大
glutWireCube(1.0);//边长
glPopMatrix();
//画肩膀
//glPushMatrix();//记住此处的位置,下次pop之后可以回到此位置
glTranslatef(0.01.50.0);
glPushMatrix();
glScalef(4.01.01.0);
glutWireCube(0.5); 
glPopMatrix();
//画头部
glPushMatrix();//记住此处的位置,下次pop之后可以回到此位置
glTranslatef(0.00.50.0);
glPushMatrix();
glRotatef((GLfloat)head 0.0f 1.0f 0.0f);
glutWireSphere(0.51010);
glPopMatrix();


//画左手臂
         
glTranslatef(-1.0-0.50.0);//是沿着上面的坐标往下的……
glRotatef((GLfloat) shoulderL0.00.01.0);
glTranslatef(-0.4-0.50.0);
glPushMatrix();
glColor3f(1.01.00.0);
glScalef(1.22.01.0);
glutWireCube(0.5);
glPopMatrix();

glTranslatef(0.0-0.50.0);
glRotatef((GLfloat) elbowL0.00.01.0);
glTranslatef(0.0-0.50.0);
glPushMatrix();
//glColor3f(1.01.00.0);
glScalef(1.02.01.0);
glutWireCube(0.5);
glPopMatrix();

//画右手臂
glPopMatrix();//回到颈部的位置

glTranslatef(1.00.00.0);//
glRotatef((GLfloat) shoulderR0.00.01.0);
glTranslatef(0.4-0.50.0);
glPushMatrix();
glScalef(1.22.01.0);
glutWireCube(0.5);
glPopMatrix();

glTranslatef(0.0-0.50.0);
glRotatef((GLfloat) elbowL0.00.01.0);
glTranslatef(0.0-0.50.0);
glPushMatrix();
//glColor3f(1.01.00.0);
glScalef(1.02.01.0);
glutWireCube(0.5);
glPopMatrix();
glPopMatrix();//回到初始点

//画臀部
        glPushMatrix();
glTranslatef(0.03.750.0);
glColor3f(1.00.00.0);
glPushMatrix();
glScalef(4.01.01.0);
glutWireCube(0.5);//reference what?v 
glPopMatrix();
glPopMatrix();
//画左腿从初始点开始画
glPushMatrix();
glTranslatef(-0.53.50.0);//
glRotatef((GLfloat) LegUpL1.00.00.0);
glTranslatef(0.0-0.750.0);
glColor3f(1.01.00.0);
glPushMatrix();
glScalef(1.01.51.0);
glutWireCube(1.0);
glPopMatrix();

glTranslatef(0.0-0.750.0);//
glRotatef((GLfloat) LegBtL1.00.01.0);
glTranslatef(0.0-10.0);
glColor3f(1.01.00.0);
glPushMatrix();
glScalef(1.02.01.0);
glutWireCube(0.8);
glPopMatrix();
            glPopMatrix();
//画右腿
glPushMatrix();
glTranslatef(0.53.50.0);//
glRotatef((GLfloat) LegU

评论

共有 条评论