资源简介
基于opengl的3D机器人,带有光照阴暗效果,机器人可以行走,手、头脚、肩膀都可以自由旋转。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
using namespace std;
int all_rotate=0;
int head_rotate=0;
int shoulder_y=0;
int shoulder_x=0;
int larm_r=0;
int rarm_r=0;
int llw=0;
int rlw=0;
int robot_move=0;
int turn_back=0;
float l=0;
float k=0;
float a=0.2b=0.9c=0.3d=0.3; //a--torso b--body c--shoulder d--arm and leg
void torso()
{
glPushMatrix();
glScalef(float(1.0/a)1.01.0);
glutSolidSphere(a 30 17);
glPopMatrix();
}
void body()
{
glPushMatrix();
glTranslatef(01.50);
glScalef(1.0float(1.5/b)1.0);
glutSolidSphere(b 30 17);
glPopMatrix();
}
void shoulder()
{
glPushMatrix();
glScalef(float(1.5/c)1.01.0);
glutSolidSphere(c 30 17);
glPopMatrix();
}
void head()
{
glPushMatrix();
glTranslatef(00.50);
glutSolidSphere(0.5f 30 17);
glTranslatef(000.5);
glutSolidSphere(0.1f 30 17);
glPopMatrix();
}
void upperarm() //手脚的画法相同,所以直接使用同一个函数
{
glPushMatrix();
glTranslatef(0-10);
glScalef(1.0float(1.0/d)1.0);
glutSolidSphere(d 30 17);
glPopMatrix();
}
void lowerarm()
{
glPushMatrix();
glTranslatef(0-10);
glScalef(1.0float(1.0/d)1.0);
glutSolidSphere(d 30 17);
glPopMatrix();
}
void init(void)
{
GLfloat mat_diffuse[]={1.01.01.01.0};
GLfloat mat_specular[]={1.01.01.01.0};
GLfloat mat_shininess[]={50.0};
GLfloat light_diffuse[]={0.10.90.11.0};
GLfloat light_position[]={10.010.010.01.0};
GLfloat light_specular[]={0.50.50.51.0};
GLfloat lmodel_ambient[]={0.01.00.01.0};
glClearColor(0.00.00.00.0);
glShadeModel(GL_SMOOTH);
glMaterialfv(GL_FRONTGL_SPECULARmat_specular);
glMaterialfv(GL_FRONTGL_SHININESSmat_shininess);
glLightfv(GL_FRONTGL_DIFFUSEmat_diffuse);
glLightfv(GL_LIGHT0GL_POSITIONlight_position);
glLightfv(GL_LIGHT0GL_DIFFUSElight_diffuse);
glLightfv(GL_LIGHT0GL_SPECULARlight_specular);
glLightModelfv(GL_LIGHT_MODEL_AMBIENTlmodel_ambient);
GLfloat mat_ambient[]={1.01.01.01.0};
GLfloat light_ambient[]={1.01.01.01.0};
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST);
}
void display(void)
{
glClearColor(0.00.00.00.0);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glColor3f(0.10.90.1);
glPushMatrix();
glRotatef((float)all_rotate0.01.00.0);
glPushMatrix();
glTranslatef(00robot_move);
glPushMatrix();
body(); //身体
glPopMatrix();
glPushMatrix(); //(000)
glTranslatef(030); //(030)
glPushMatrix(); //先画头,这样头和脖子就不会一起旋转
glRotatef(head_rotate0.01.00.0);
head();
glPopMatrix(); //(030)
glRotatef((GLfloat)shoulder_y0.01.00.0); //shoulder、arms rotate based on Y axis
glRotatef((GLfloat)shoulder_x1.00.00.0); //shoulder、arms rotate based on X axis
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-03-09 18:57 Robot\
目录 0 2017-03-09 18:57 Robot\Robot\
文件 882 2017-01-03 12:56 Robot\Robot.sln
文件 9216 2017-03-09 18:57 Robot\Robot.suo
目录 0 2017-03-09 18:57 Robot\Robot\Debug\
文件 610 2017-03-09 18:55 Robot\Robot\Debug\cl.command.1.tlog
文件 19180 2017-03-09 18:55 Robot\Robot\Debug\CL.read.1.tlog
文件 274 2017-03-09 18:55 Robot\Robot\Debug\CL.write.1.tlog
文件 2 2017-03-09 18:56 Robot\Robot\Debug\li
文件 2 2017-03-09 18:56 Robot\Robot\Debug\li
文件 2 2017-03-09 18:56 Robot\Robot\Debug\li
文件 2 2017-03-09 18:56 Robot\Robot\Debug\li
文件 2 2017-03-09 18:56 Robot\Robot\Debug\li
文件 2 2017-03-09 18:56 Robot\Robot\Debug\li
文件 1356 2017-03-09 18:56 Robot\Robot\Debug\li
文件 3538 2017-03-09 18:56 Robot\Robot\Debug\li
文件 612 2017-03-09 18:56 Robot\Robot\Debug\li
文件 350 2017-03-09 18:56 Robot\Robot\Debug\mt.command.1.tlog
文件 266 2017-03-09 18:56 Robot\Robot\Debug\mt.read.1.tlog
文件 266 2017-03-09 18:56 Robot\Robot\Debug\mt.write.1.tlog
文件 464 2017-03-09 18:55 Robot\Robot\Debug\rc.command.1.tlog
文件 238 2017-03-09 18:55 Robot\Robot\Debug\rc.read.1.tlog
文件 246 2017-03-09 18:55 Robot\Robot\Debug\rc.write.1.tlog
文件 406 2017-03-09 18:55 Robot\Robot\Debug\Robot.exe.em
文件 472 2017-03-09 18:55 Robot\Robot\Debug\Robot.exe.em
文件 381 2017-03-09 18:56 Robot\Robot\Debug\Robot.exe.intermediate.manifest
文件 57 2017-03-09 18:56 Robot\Robot\Debug\Robot.lastbuildstate
文件 1828 2017-03-09 18:56 Robot\Robot\Debug\Robot.log
文件 69088 2017-03-09 18:55 Robot\Robot\Debug\robot.obj
文件 713 2017-03-09 18:55 Robot\Robot\Debug\Robot.vcxprojResolveAssemblyReference.cache
文件 0 2017-03-09 18:55 Robot\Robot\Debug\Robot.write.1.tlog
............此处省略7个文件信息
- 上一篇:数据通信原理 试题举例2
- 下一篇:Hdocs.zip
相关资源
- 51单片机控制步进电机电路图
- 使用opengl画桌子+球+地板
- ABB机器人用来配置DEVICENET网络
- OpenGL 的 GL.h
- SOILX64版本
- 3D图形绘制及显示OpenGL
- 光线跟踪算法源码
- opengl的glut最全包
- glad.h库OpenGL开发用
- OpenGL+IMU显示姿态
- OpenGL编程指南第七版(原书+目录+文本
- Qt智能聊天机器人源码
- glut工具包,解决编译问题: 无法打
- OPENGL视频教程从入门基础到精通
- OpenGL绘制图形包含20多个基本
- 多足机器人(多舵机)动作编排软件
- 用OPENGL做的空间探索程序.内有一个飞
- OPENGL做的太阳系五大行星的公转和自
- delta机器人sw模型
- 基于openGL的三维地形场景的生成
- opengl 贴图教程
- opengl保存bmp图片函数
- OPENGL 字母模型
- QT opengl 绘制立体图形
- Qt加载3D模型
- openGL特效动画
- opengl计算机图形学3D雪人
- NAO机器人高尔夫球Choregraphe程序
- 移动机器人路径规划
- OPENGL ES 2.0 播放视频
评论
共有 条评论