• 大小: 1.15MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-24
  • 语言: 其他
  • 标签: openGL  机器人  

资源简介

利用openGL 画一个机器人,加上光照附上材质及其相关运动~~

资源截图

代码片段和文件信息

//本程序实现了简单机器人模型
#include
#include
#include
#include

static float theta[10]={0}; 
float flagI=1;

void init(void)
{
GLfloat mat_specular[]={1.01.00.01.0};
GLfloat mat_shiness[]={50.0};

GLfloat light_position[]={ 5.05.05.01.0};
GLfloat light_ambient[]={1.01.00.01.0};
GLfloat light_diffuse[]={1.01.00.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.20.0);
glutSolidSphere(0.42016);
glPopMatrix();
}

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

//画身体
void base()
{
glPushMatrix();
glRotatef(90.00.00.01.0);
glTranslatef(0.50.00.0);
glScalef(2.01.00.5);
glutSolidCube(1.0);
glPopMatrix();
}

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

//画右下臂
void right_lower_arm()
{
glPushMatrix();
glTranslatef(1.00.30.0);
glScalef(0.61.00.5);
glutSolidCube(1.0);
glPopMatrix();
}

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

//画左下臂
void left_lower_arm()
{
glPushMatrix();
glTranslatef(-1.00.30.0);
glScalef(0.61.00.5);
glutSolidCube(1.0);
glPopMatrix();
}

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

//画右下腿
void right_lower_leg()
{
glPushMatrix();
glRotatef(90.00.00.01.0);
glTranslatef(-2.0-0.50.0);
glScalef(1.00.41.0);
glutSolidCube(1.0);
glPopMatrix();
}

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

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

void display(void)
{
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glEnable(GL_NORMALIZE);

//处理身体旋转
glRotatef(theta[0]0.01.00.0);
shoulder();
base();

//处理头旋转
glPushMatrix();
glRotatef(theta[1]0.01.00.0);
head();
glPopMatrix();

//处理右上臂与右下臂的旋转
glPushMatrix();
glTranslatef

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5561  2009-05-27 12:32  光照机器人\aa.cpp

     文件       3353  2009-05-31 23:45  光照机器人\aa.dsp

     文件        512  2009-05-31 23:53  光照机器人\aa.dsw

     文件      50176  2009-05-31 23:53  光照机器人\aa.ncb

     文件      48640  2009-05-31 23:53  光照机器人\aa.opt

     文件       1220  2009-05-31 23:46  光照机器人\aa.plg

     文件     196776  2009-05-31 23:46  光照机器人\Debug\aa.exe

     文件     216068  2009-05-31 23:46  光照机器人\Debug\aa.ilk

     文件      29485  2009-05-31 23:46  光照机器人\Debug\aa.obj

     文件    3677444  2009-05-31 23:46  光照机器人\Debug\aa.pch

     文件     369664  2009-05-31 23:46  光照机器人\Debug\aa.pdb

     文件     140288  2009-05-31 23:53  光照机器人\Debug\vc60.idb

     文件      77824  2009-05-31 23:46  光照机器人\Debug\vc60.pdb

     目录          0  2009-05-31 23:46  光照机器人\Debug

     目录          0  2009-05-31 23:53  光照机器人

----------- ---------  ---------- -----  ----

              4817011                    15


评论

共有 条评论