资源简介
计算机图形学OpenGL画机器人,学习glPopMatrix()和glPushMatrix()的作用
代码片段和文件信息
#include
static int head = 0shoulderL = 0elbowL = 0shoulderR = 0elbowR = 0LegUpL = 0LegUpR = 0LegBtL = 0LegBtR = 0;
void init(void)//光源和材料的定义
{
glClearColor (0.0 0.0 0.0 0.0);
glShadeModel (GL_SMOOTH);
}
void display(void)//画具体的形状
{
glClear (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
//画躯干
glPushMatrix();
glTranslatef (0.05.50.0);
glColor3f(1.00.00.0);
glPushMatrix();
glScalef(2.03.01.0);//y轴上扩大
glutWireCube(1.0);//边长
glPopMatrix();
//画肩膀
//glPushMatrix();//记住此处的位置,下次pop之后可以回到此位置
glTranslatef(0.01.50.0);
glPushMatrix();
glScalef(4.01.01.0);
glutWireCube(0.5);
glPopMatrix();
//画头部
glPushMatrix();//记住此处的位置,下次pop之后可以回到此位置
glTranslatef(0.00.50.0);
glPushMatrix();
glRotatef((GLfloat)head 0.0f 1.0f 0.0f);
glutWireSphere(0.51010);
glPopMatrix();
//画左手臂
glTranslatef(-1.0-0.50.0);//是沿着上面的坐标往下的……
glRotatef((GLfloat) shoulderL0.00.01.0);
glTranslatef(-0.4-0.50.0);
glPushMatrix();
glColor3f(1.01.00.0);
glScalef(1.22.01.0);
glutWireCube(0.5);
glPopMatrix();
glTranslatef(0.0-0.50.0);
glRotatef((GLfloat) elbowL0.00.01.0);
glTranslatef(0.0-0.50.0);
glPushMatrix();
//glColor3f(1.01.00.0);
glScalef(1.02.01.0);
glutWireCube(0.5);
glPopMatrix();
//画右手臂
glPopMatrix();//回到颈部的位置
glTranslatef(1.00.00.0);//
glRotatef((GLfloat) shoulderR0.00.01.0);
glTranslatef(0.4-0.50.0);
glPushMatrix();
glScalef(1.22.01.0);
glutWireCube(0.5);
glPopMatrix();
glTranslatef(0.0-0.50.0);
glRotatef((GLfloat) elbowL0.00.01.0);
glTranslatef(0.0-0.50.0);
glPushMatrix();
//glColor3f(1.01.00.0);
glScalef(1.02.01.0);
glutWireCube(0.5);
glPopMatrix();
glPopMatrix();//回到初始点
//画臀部
glPushMatrix();
glTranslatef(0.03.750.0);
glColor3f(1.00.00.0);
glPushMatrix();
glScalef(4.01.01.0);
glutWireCube(0.5);//reference what?v
glPopMatrix();
glPopMatrix();
//画左腿从初始点开始画
glPushMatrix();
glTranslatef(-0.53.50.0);//
glRotatef((GLfloat) LegUpL1.00.00.0);
glTranslatef(0.0-0.750.0);
glColor3f(1.01.00.0);
glPushMatrix();
glScalef(1.01.51.0);
glutWireCube(1.0);
glPopMatrix();
glTranslatef(0.0-0.750.0);//
glRotatef((GLfloat) LegBtL1.00.01.0);
glTranslatef(0.0-10.0);
glColor3f(1.01.00.0);
glPushMatrix();
glScalef(1.02.01.0);
glutWireCube(0.8);
glPopMatrix();
glPopMatrix();
//画右腿
glPushMatrix();
glTranslatef(0.53.50.0);//
glRotatef((GLfloat) LegU
相关资源
- 6自由度机器人运动学正反解C++程序
- 最新的魔兽世界机器人脚本NpcBot.pat
- 安卓c语言开发SDL2+opengles
- 交互式计算机图形学 第六版 OpenGL源代
- VC++基于OpenGL模拟的一个3维空间模型
- opengl绘制汽车.cpp
- 基于LPC2132的蛇形机器人前端执行机构
- 基于机器视觉可移动裂纹检测机器人
- opengl实现水流效果sph
- 基于遗传算法的机器人路径规划
- 移动机器人lissajous曲线轨迹跟踪
- opengl源代码,全是精华!
- OpenGL迷宫山东大学图形学实验三
- opengl的立方体消隐算法
- vc++ opengl代码爆炸
- 我见过最漂亮的CS仿真程序openGL和C+
- 广东某工业大学的openGL课程设计
- 使用OpenGL实现多个小球在密闭空间内
- 利用openGL和C++实现光线跟踪绘图的完
- OpenGl C++太阳系小行星运行系统 可切换
- vc++和OpenGL实现三维地形实时动态显示
- C++实现利用OpenGL实现三维绘图
- 太阳、地球、月亮之间的运动图Open
- MFC 单文档 实现opengl 三维旋转 缩放
- OPENGL的烟花程序(代码)
- MFC+OpenGL三维建模与动画显示
- 基于opengl粒子系统实现喷泉的模拟
- 一个基于openGL的太阳系模型,太阳地
- vc6.0+opengl纯色五角星填充
- vc6.0+opengl动态绘制五角星
评论
共有 条评论