資源簡介
該程序通過OpenGL實現(xiàn)機器人運動(下蹲、起身、走、跑),可以作為學(xué)習(xí)OpenGL機器人連續(xù)運動的一個參考

代碼片段和文件信息
#include
#include
#include
#include
static?float?theta[10]={0};?//機器人跑與走時各關(guān)節(jié)的擺動幅度
static?float?apha[10]={0};??//機器人下蹲起身時的關(guān)節(jié)擺動幅度
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??計算機圖形作業(yè)\OpenGL運動機器人實現(xiàn).doc
?????文件????????8431??2013-07-04?09:30??計算機圖形作業(yè)\robot.cpp
?????目錄???????????0??2013-07-04?09:31??計算機圖形作業(yè)\
評論
共有 條評論