图形学课程设计报告书图形学课程设计报告书.docVIP

图形学课程设计报告书图形学课程设计报告书.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图形学课程设计报告书图形学课程设计报告书

课 程 设 计 2011 年 5 月 31 日 目 录 目 录 - 2 - 一、选题背景 - 1 - 1.1 奥运五环设计的问题 - 1 - 1.2 奥运五环设计指导思想 - 1 - 二、算法设计 - 1 - 2.1 设计原理 - 1 - 2.2 算法设计的方案 - 2 - 2.2.1圆环求交算法 - 2 - 2.2.2 三维旋转变换算法 - 2 - 三、程序及功能说明 - 2 - 3.1 程序说明 - 2 - 四、结果分析 - 5 - 4.1、显示结果 - 5 - 五、总结 - 6 - 六、课程设计心得体会 - 7 - 参考文献 - 8 - 源程序 1 一、选题背景 1.1 奥运五环设计的问题 计算机图形学是计算机科学最活跃的分支之一,它伴随着计算机技术的发展而发展。它研究的对象是能够在人的的视觉系统中形成视觉印象的客观对象的图形。它包括人眼所观察到的自然界的景物,用照相机等装置所获得的图片,用绘图工具绘制的工程图,各种人工美术绘画和用数学方法描述的图形等。利用图形学知识设计奥运五环会遇到许多问题,如五个圆环的生成,颜色的填充,光照明模型的形成,如何使图形具有三维立体感,在图形形成的过程中怎样使其具有动态画面,怎样在五环后加入背景,还有怎样使用VC++中的高级图形工具OPENGL。为此在此设计中需要掌握OPENGL中的各种绘图功能,并能达到熟练运用。掌握图形生成算法,颜色模型形成,简单光照明模型的形成与应用。 1.2 奥运五环设计指导思想 奥运五环代表五大洲。黄色是亚洲,黑色是非洲,蓝色是欧洲,红色是美洲,绿色是大洋洲。五环环环相扣,象征着五大洲人民的团结,共振奥运精神!朴素的白色背景寓意着和平VC++中的高级图形工具OpenGL,绘制各种三维动态图形,利用填充图形填充各种图形及颜色。图形学中所要表示、处理和生成的物体,不仅包括客观存在的物体,还包括构造出来的虚拟物体。还可依据光照明模型,绘制算法具体计算对应屏幕上各像素的物体表面的颜色,并最终显示图形。可利用这些图形学知识实现奥运五环。 二、算法设计 2.1 设计原理 圆环与圆环求教算法,颜色的交互指定与颜色插值中的Gouraud着色方法,反混淆算法以及制作动画时需要的图像融合,三维坐标系中旋转变换,光照明模型方程,漫反射和镜面反射原理等,生成具有动态旋转功能,带有五种颜色的五个相交环,并在光照下具有真实感的图形。 2.2 算法设计的方案 2.2.1圆环求交算法 将圆环面看成中心在大圆上的一族圆,从而将球面圆环面求交的问题转化为球面与一族圆的求交问题.该算法不需要跟踪交线.首先利用点圆最近距离的理论,直接判断是否无交、相切于一点、交于一个圆或交于两个圆等简单的情况;其他情况下,通过求解关于圆环面大圆的参数的一元四次方程的根,然后对该参数区间[0,2π]进行划分,并通过简单的符号判断来确定有交的参数子区间,在这些有交的子区间上直接给出所有交曲线段的参数表示形式.旋转角,可按照如下步骤为实现: 以为原点,为轴建立新的坐标系; 求出从坐标系到坐标系的变换M; 将图形对象变换到坐标系中; 在新坐标系中; 将图形对象变换回原坐标系中,变换为M。 这样绕旋转角的变换为: 三、程序及功能说明 3.1 程序说明 1.枚举个元素 enum { BLACK = 0, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE }; typedef short Point[2]; GLenum directRender; unsigned char rgb_colors[RINGS][3]; int mapped_colors[RINGS]; float dests[RINGS][3]; float offsets[RINGS][3]; float angs[RINGS]; float rotAxis[RINGS][3]; int iters[RINGS]; GLuint theTorus; 3. 画出球,环面求交 void FillTorus(float rc, int numc, float rt, int numt) { int i, j, k; float s, t; float x, y, z; float pi, twopi; pi = M_PI; twopi = 2 * pi; for (i = 0; i numc; i++) { glBegin(GL_QUAD_STRIP);/*开始画球*/ for (j = 0; j = numt; j++) { for (k = 1; k = 0; k-

您可能关注的文档

文档评论(0)

cduutang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档