资源简介
实现机器人带光照的绘制和运动变换。通过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立方体带黑白格格纹理有光照可
- 计算机图形学OpenGL、codeblock、四连通
- opengl鼠标旋转,键盘缩放和平移
- opengl头文件glext.h
- 计算机图形学OpengL蔡士杰等译 随书代
- OPENGL室内三维效果
- YUV420在qt5下显示
- glut工具库
- 计算机图形学 交互实体模型
- OPENGL读取显示obj模型_VS2010
- 运用Opengl和C实现一个人体面部的三维
- opengl实现分形山脉
- opengl显示网格模型
- OpenGL扩展包实现接收鼠标滚轮输入功
- OpenGL + freeglut + glew + glm 環境配置
- openGl模拟太阳系旋转的小程序
- 支持滚轮事件的OpenGL的glut库
- OPENGL(GLAUX+GLUT)库文件等等
- 运动的自行车OpenGL
- 时钟绘制OpenGL
- opengl几个经典程序
- Foundations Of 3D Computer Graphics (高清P
- OpenGL图形绘制.doc
- glut.lib glut32.lib opengl.lib opengl32.lib gl
- openGl绘制茶壶纹理
- opengl math3d
- opengl实现的光线跟踪
- 利用OpenGL实现屏幕坐标与世界坐标的
- OpenGL画花瓶,可以填充,选择颜色 代
- 基于OpenGL的B样条曲线曲面的绘制
评论
共有 条评论