• 大小: 223KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-06-16
  • 语言: 其他
  • 标签: OpenGL  机器人  运动  

资源简介

该程序通过OpenGL实现机器人运动(下蹲、起身、走、跑),可以作为学习OpenGL机器人连续运动的一个参考

资源截图

代码片段和文件信息

#include
#include
#include
#include

static float theta[10]={0}; //机器人跑与走时各关节的摆动幅度
static float apha[10]={0};  //机器人下蹲起身时的关节摆动幅度
float flagI=1;        
float flag2=1;
bool flagrun=false;  //flagrun=false时走,否则跑
bool start=false;   //控制机器人运动与暂停
int time=0;
float change=1.0;//控制摆动幅度

void init(void)
{
GLfloat mat_specular[]={5.01.00.01.0};
GLfloat mat_shiness[]={5.0};

GLfloat light_position[]={ 5.05.05.01.0};
GLfloat light_ambient[]={1.01.00.01.0};
GLfloat light_diffuse[]={1.01.01.01.0};
GLfloat light_specular[]={1.00.00.01.0};

glClearColor (0.0 0.0 0.0 0.0);

glShadeModel(GL_SMOOTH);

glMaterialfv(GL_FRONTGL_SPECULARmat_specular);
glMaterialfv(GL_FRONTGL_SHININESSmat_shiness);

glLightfv(GL_LIGHT0GL_POSITIONlight_position);
glLightfv(GL_LIGHT0GL_AMBIENTlight_ambient);
glLightfv(GL_LIGHT0GL_DIFFUSElight_diffuse);
glLightfv(GL_LIGHT0GL_SPECULARlight_specular);

glClearDepth( 1.0 );
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST);
}

//画头
void head()
{
glPushMatrix();
glTranslatef(0.02.70.0);
glutSolidSphere(0.72016);
glPopMatrix();
}

//画肩膀
void shoulder()
{
glPushMatrix();
glTranslatef(0.01.80.0);
glScalef(30.30.5);
glutSolidCube(1.0);
glPopMatrix();
}

//画身体
void base()
{
glPushMatrix();
glTranslatef(0.00.20.0);
glScalef(1.53.00.5);
glutSolidSphere(0.62010);

glPopMatrix();
}

//画右上臂
void right_upper_arm()
{
glPushMatrix();
glTranslatef(1.50.80.0);
glScalef(0.62.00.4);
glutSolidCube(1.0);
glPopMatrix();
}

//画右下臂
void right_lower_arm()
{
glPushMatrix();
glTranslatef(1.5-1.00.0);
glScalef(0.62.00.5);
glutSolidCube(1.0);
glPopMatrix();
}

//画左上臂
void left_upper_arm()
{
glPushMatrix();
glTranslatef(-1.50.80.0);
glScalef(0.62.00.4);
glutSolidCube(1.0);
glPopMatrix();
}

//画左下臂
void left_lower_arm()
{
glPushMatrix();
glTranslatef(-1.5-1.00.0);
glScalef(0.62.00.5);
glutSolidCube(1.0);
glPopMatrix();
}
//画跨
void gum()
{
glPushMatrix();
glTranslatef(0.0-1.50.0);
glScalef(2.00.30.5);
glutSolidCube(1.0);
glPopMatrix();
}

//画右上腿
void right_upper_leg()
{
glPushMatrix();
glRotatef(90.00.00.01.0);
glTranslatef(-2.5-1.00.0);
glScalef(2.00.51.0);
glutSolidCube(1.0);
glPopMatrix();
}

//画右下腿
void right_lower_leg()
{
glPushMatrix();
glRotatef(90.00.00.01.0);
glTranslatef(-4.5-1.00.0);
glScalef(2.00.51.0);
glutSolidCube(1.0);
glPopMatrix();
}

//画左上腿
void left_upper_leg()
{
glPushMatrix();
glRotatef(90.00.00.01.0);
glTranslatef(-2.51.00.0);
glScalef(2.00.51.0);
glutSolidCube(1.0);
glPopMatrix();
}

//画左下腿
void left_lower_leg()
{
glPushMatrix();
glRotatef(90.00.00.01.0);
glTranslatef(-4.51.00.0);
glScalef(2.00.51.0);
glutSolidCube(1.0);
glPopMatrix();
}
void run()
{


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件      290304  2013-07-23 13:58  计算机图形作业\OpenGL运动机器人实现.doc
     文件        8431  2013-07-04 09:30  计算机图形作业\robot.cpp
     目录           0  2013-07-04 09:31  计算机图形作业\

评论

共有 条评论