OpenGL自行车.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OpenGL自行车

GIS专业实验报告(计算机图形学) 实验4 使用opengl进行层次模型的编程设计------以简单自行车模型为例 姓名 系别班级 学号 实验日期 指导教师 实验成绩 实验目的及要求 用c++调用opengl图形函数库,通过显示列表的嵌套实现复杂物体的层次建模。设计一个包含框架和两个轮子的自行车。 理论基础 显示列表: 显示列表是一组OpenGL函数调用,它被存储起来供以后执行。这样就可以将基本图素的OpenGL函数实现组织起来,指定名称,构成图段,所构成的图段可以再以后需要的地方显示出来。 创建显示列表方式如下: glNewList(listID,listMode); glutSoildCube(2.0); …… glEndList(); 显示列表的调用: 在显示列表创建之后,可以使用函数 Void glCallList(GLuint listID); 调用显示列表,其中参数listID是已定义的显示列表标识。 OpenGL画线函数: glBegin(GL_LINES); glVertex2i(x1,y1); glVertex2i(x2,y2); glEnd(); OpenGL画圆函数: glNewList(Wheel, GL_COMPILE); glutSolidTorus(线宽,半径, 15, 50); glEndList(); OpenGL绘制闭合画线函数: glBegin(GL_LINE_LOOP); glVertex2i(x1,y1); glVertex2i(x2,y2); glVertex2i(x3,y3); … … glEnd(); 算法设计与分析 程序源码如下: #include windows.h #include gl/glut.h GLuint Wheel; GLuint Frame; void Initial(void) { glClearColor(1.0f, 1.0f, 1.0f, 1.0f); Wheel = glGenLists(1); glNewList(Wheel, GL_COMPILE); glColor3f(255.0, 0.0, 0.0); glTranslatef(-40.0, -30.0, 0.0); glutSolidTorus(0.6, 25.0, 15, 50); //前轮 glutSolidTorus(0.15, 4.0, 15, 50); //前齿轮 /**********前轮前齿轮**********/ glColor3f(255.0, 0.0, 0.0); glTranslatef(44.0, 0.0, 0.0); glutSolidTorus(0.2, 7.0, 15, 50); /**********中间齿轮**********/ glColor3f(255.0, 0.0, 0.0); glTranslatef(40.0, 0.0, 0.0); glutSolidTorus(0.6, 25.0, 15, 50); glutSolidTorus(0.2, 4.0, 15, 50); /**********后轮后齿轮**********/ glEndList(); Frame = glGenLists(1); glNewList(Frame,GL_COMPILE); glColor3f(0.0, 255, 0.0); glLineWidth(2); glTranslatef(-20.0, 0.0, 0.0); glBegin(GL_LINES); //链条(上) glVertex2i(26,-28); glVertex2i(66,-31); glEnd(); /**********链条(上)**********/ glBegin(GL_LINES); //链条 (下) glVertex2i(26,-42); glVertex2i(66,-39); glEnd(); /**********链条(下)**********/ glColor3f(0.0, 0.0, 255.0); glLineWidth(2); glBegin(GL_LINES);

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档