资源简介
利用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
- 上一篇:PCA-ICA-LDA 介绍与比较
- 下一篇:AUTOSARCAN总线网络管理规范
相关资源
- OpenGL参考手册
- Qt Creator opengl实现四元数鼠标控制轨迹
- 机器人单机械臂滑模控制程序
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- 智能寻迹机器人源程序及pcb图
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- 发那科fanuc机器人robot(电气调试启动
- Fanuc机器人PNS程序和RSR程序启动改.d
- OPENGL实现世界上最小的3D游戏
- 微信聊天机器人源码
- 机器人操作系统ROS2
- ipad微信协议机器人
- VS2012OpenGL配置所需要的全部libdllh文件
- 水下自重构机器人行走运动稳定性准
- 机器人运动学及动力学
- Geometrical methods in robotics
- 基于改进势场栅格法的移动机器人路
- 基于改进人工势场法的救灾机器人路
- 机器人-SPS程序-简析
评论
共有 条评论