资源简介
实现机器人带光照的绘制和运动变换。通过glPushMatrix() 和glPopMatrix()绘制出机器人层次结构模型和几何变换,要求实现机器人手、脚、头、肩膀的旋转等几何变换,能够实现机器人走路的效果。同时机器人打上光照。内付完整代码以及实验报告!!

代码片段和文件信息
#include
#include“glut.h“
#include
using namespace std;
GLfloat no_mat[] = { 0.0 0.0 0.0 1.0 };
GLfloat mat_ambient[] = { 0.8 0.8 0.8 1.0 };
GLfloat mat_ambient_color[] = { 0.8 0.8 0.2 1.0 };
GLfloat mat_diffuse[] = { 0.5 0.8 0.0 1.0 };
GLfloat mat_specular[] = { 1.0 0.0 0.5 1.0 };
GLfloat no_shininess[] = { 0.5 };
GLfloat low_shininess[] = { 5.0 };
GLfloat high_shininess[] = { 100.0 };
GLfloat mat_emission[] = {0.3 0.2 0.2 0.0};
static int angle = 0 neck = 0 lshoulder = 0 lelbow = 0 rshoulder = 0 relbow = 0
lhips = 0 rhips = 0 lfoot = 0 rfoot = 0 flagneck = 0 flaglshoulder = 0
flaglelbow = 0 flagrshoulder = 0 flagrelbow = 0 flaglhips = 0
flagrhips = 0 flaglfoot = 0 flagrfoot = 0;
void init(void)
{
GLfloat ambient[] = { 0.0 0.0 0.0 1.0 };
GLfloat diffuse[] = { 1.0 1.0 1.0 1.0 };
GLfloat position[] = { 0.0 5.0 10.0 0.0 };
GLfloat lmodel_ambient[] = { 0.4 0.4 0.4 1.0 };
GLfloat local_view[] = { 0.0 };
glClearColor(0000);
glLightfv(GL_LIGHT0 GL_AMBIENT ambient);
glLightfv(GL_LIGHT0 GL_DIFFUSE diffuse);
glLightfv(GL_LIGHT0 GL_POSITION position);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT lmodel_ambient);
glLightModelfv(GL_LIGHT_MODEL_LOCAL_VIEWER local_view);
glShadeModel(GL_SMOOTH);
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
}
void draw_body(void)
{
glPushMatrix();
glTranslatef(01.50);
glScalef(0.510.4);
glMaterialfv(GL_FRONT GL_AMBIENT mat_ambient_color);
glMaterialfv(GL_FRONT GL_DIFFUSE mat_diffuse);
glMaterialfv(GL_FRONT GL_SPECULAR mat_specular);
glMaterialfv(GL_FRONT GL_SHININESS high_shininess);
glMaterialfv(GL_FRONT GL_EMISSION no_mat);
glutSolidCube(4); ;
glPopMatrix();
}
void draw_leftshoulder(void)
{
glPushMatrix();
glMaterialfv(GL_FRONT GL_AMBIENT no_mat);
glMaterialfv(GL_FRONT GL_DIFFUSE mat_diffuse);
glMaterialfv(GL_FRONT GL_SPECULAR no_mat);
glMaterialfv(GL_FRONT GL_SHININESS no_shininess);
glMaterialfv(GL_FRONT GL_EMISSION no_mat);
glTranslatef(1.5 30);
glRotatef(lshoulder 1 0 0);
glTranslatef(0 -0.5 0);
glScalef(0.4 1 0.5);
glutSolidCube(2);
glScalef(1 / 0.4 1 / 1 1 / 0.5);
glTranslatef(0 -1.4 0);
glRotatef(lelbow 10 0);
glutWireSphere(0.4 200 500);
glScalef(0.4 1 0.5);
glTranslatef(0 -1.4 0);
glutSolidCube(2);
glPopMatrix();
}
void draw_rightshoulder(void)
{
glPushMatrix();
glMaterialfv(GL_FRONT GL_AMBIENT no_mat);
glMaterialfv(GL_FRONT GL_DIFFUSE mat_diffuse);
glMaterialfv(GL_FRONT GL_SPECULAR no_mat);
glMaterialfv(GL_FRONT GL_SHININESS no_shininess);
glMaterialfv(GL_FRONT GL_EMISSION no_mat);
glTranslatef(-1.530);
glRotatef(rshoulder100);
glTranslatef(0-0.50);
glScalef(0.410.5);
glutSolidCube(2);
glScalef(1/0.41/11/0.5);
glTranslatef(0-1.40);
glRotatef(relbow100);
gl
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-11-05 09:30 高级图形学期末大作业\
目录 0 2017-11-05 09:26 高级图形学期末大作业\openGL_robot\
目录 0 2017-11-05 09:26 高级图形学期末大作业\openGL_robot\Debug\
文件 278632 2016-12-29 23:45 高级图形学期末大作业\openGL_robot\Debug\openGL_robot.exe
文件 423836 2016-12-29 23:45 高级图形学期末大作业\openGL_robot\Debug\openGL_robot.ilk
文件 46412 2016-12-29 23:45 高级图形学期末大作业\openGL_robot\Debug\openGL_Robot.obj
文件 187016 2016-12-29 11:12 高级图形学期末大作业\openGL_robot\Debug\openGL_robot.pch
文件 615424 2016-12-29 23:45 高级图形学期末大作业\openGL_robot\Debug\openGL_robot.pdb
文件 189440 2016-12-29 23:45 高级图形学期末大作业\openGL_robot\Debug\vc60.idb
文件 135168 2016-12-29 23:45 高级图形学期末大作业\openGL_robot\Debug\vc60.pdb
文件 27670 2000-12-12 09:22 高级图形学期末大作业\openGL_robot\glut.h
文件 237568 2001-11-07 11:27 高级图形学期末大作业\openGL_robot\glut32.dll
文件 28728 2001-11-07 11:27 高级图形学期末大作业\openGL_robot\glut32.lib
文件 7794 2016-12-29 11:12 高级图形学期末大作业\openGL_robot\openGL_Robot.c
文件 9992 2016-12-29 21:55 高级图形学期末大作业\openGL_robot\openGL_Robot.cpp
文件 4287 2016-12-28 20:06 高级图形学期末大作业\openGL_robot\openGL_robot.dsp
文件 331 2016-12-28 20:06 高级图形学期末大作业\openGL_robot\openGL_robot.dsw
文件 41984 2016-12-30 12:04 高级图形学期末大作业\openGL_robot\openGL_robot.ncb
文件 1398 2016-12-29 23:45 高级图形学期末大作业\openGL_robot\openGL_robot.plg
文件 162 2017-11-05 09:26 高级图形学期末大作业\~$期末大作业.docx
文件 127148 2016-12-28 19:18 高级图形学期末大作业\期末大作业.docx
文件 226918 2017-11-05 09:26 高级图形学期末大作业\高级图形学期末作业实验报告.docx
- 上一篇:rar(39)
- 下一篇:iphone4 7.0.2 shsh
相关资源
- OpenGL参考手册
- Qt Creator opengl实现四元数鼠标控制轨迹
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- OPENGL实现世界上最小的3D游戏
- VS2012OpenGL配置所需要的全部libdllh文件
- 基于OpenGL的仿蝗虫机器人三维动态仿
- 图形学 - OpenGL实现3种三维茶壶显示源
- opengl程序-会跳舞的骷髅
- opengl实现三维网格光顺Laplacian算法
- opengl——爆炸
- OpenGL三维地形建模
- opengl游戏编程徐明亮版(含源码)
- 用OPENGL画的一个简单的直升飞机
- opengl完美天空盒
- 3D绘图程序设计:使用Direct3D 10/9和Ope
- OpenGL绘制可运动自行车源程序.zip
- OpenGL实现飘动效果
- opengl室内场景的绘制,包括碰撞检测
评论
共有 条评论