ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:91.31KB ,
资源ID:2179447      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2179447.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图形学实验指导书.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图形学实验指导书.docx

1、图形学实验指导书 计 算 机 图 形 学实 验 指 导 书 适用专业: 计算机科学与技术 2005年 7 月前 言计算机图形学(Computer Graphics)是研究怎样用数字计算机生成、处理和显示图形的一门学科。随着计算机图形学不断发展,它的应用范围也日趋广泛。计算机图形学课程目的及任务是着重介绍计算机图形学的基本内容及原理与方法。它是计算机专业选修课。课程的主要内容有计算机图形学的概论及应用,计算机用户接口和交互技术,计算机图形编程,二维图形扫描算法与几何变换,三维形体表示与投影变换,曲线与曲面造型技术,真实感图形等。为了使学生更好地理解和深刻地掌握图形的几何变换、光栅图形的表示及处理

2、方法、三维形体表示等方面的知识。并在此基础上,训练和培养学生对基本图形系统的分析和设计能力,共设置了3项设计性实验,分别是图形的几何变换、区域填充、曲线及曲面表示。图形的几何变换要求学生掌握图形的平移、缩放、旋转等基本变换知识。区域填充要求学生了解并掌握光栅图形的表示方法,并实现种子算法或扫描线算法。曲线及曲面表示属于三维图形的造型技术。动画设计要求学生掌握动画设计的基本原理。本指导书重点讲述了各实验的基本原理,并给出了详细的实验素材。实验主要针对计算机科学与技术专业,也可作为研究生的辅助实验指导。目 录前 言 1实验一:图形的几何变换 3实验二:图形的区域填充 6实验三:曲线、曲面的生成 8

3、实验四:动画设计 8附录一、学生实验报告基本内容要求 14实验一:图形的几何变换实验学时:4学时实验类型:验证 实验要求:必修一、实验目的二维图形的平移、缩放、旋转和投影变换(投影变换可在实验三中实现)等是最基本的图形变换,被广泛用于计算机图形学的各种应用程序中,本实验通过算法分析以及程序设计实验二维的图形变换,以了解变换实现的方法。如可能也可进行裁剪设计。二、实验内容掌握平移、缩放、旋转变换的基本原理,理解线段裁剪的算法原理,并通过程序设计实现上述变换。建议采用VC+实现OpenGL程序设计。三、实验原理、方法和手段1 图形的平移在屏幕上显示一个人或其它物体(如图1所示),用交互操作方式使其

4、在屏幕上沿水平和垂直方向移动Tx和Ty,则有 x=x+Tx y=y+Ty其中:x与y为变换前图形中某一点的坐标,x和y为变换后图形中该点的坐标。其交互方式可先定义键值,然后操作功能键使其移动。2 图形的缩放在屏幕上显示一个帆船(使它生成在右下方),使其相对于屏幕坐标原点缩小s倍(即x方向和y方向均缩小s倍)。则有: x=x*s y=y*s注意:有时图形缩放并不一定相对于原点,而是事先确定一个参考位置。一般情况下,参考点在图形的左下角或中心。设参考点坐标为xf、yf则有变换公式 x=x*Sx+xf*(1-Sx)=xf+(x-xf)*Sx y=y*Sy+yf*(1-Sy)=yf+(y-yf)*Sy

5、式中的x与y为变换前图形中某一点的坐标,x和y为变换后图形中该点的坐标。当Sx1和Sy1时为放大倍数,Sx1和Sy1时为缩小倍数(但Sx和Sy必须大于零)。3 图形的旋转在屏幕上显示一个汽车,根据自己确定的旋转角度和旋转中心对图形进行旋转。旋转公式为 x=xf+(x-xf)*cos(angle)-(y-yf)*sin(angle) y=yf+(y-yf)*cos(angle)+(x-xf)*sin(angle)其中:xf,yf为围绕旋转的中心点的坐标。x,y为旋转前图形中某点的坐标,x和y为旋转后图形中该点的坐标。4 裁剪对一个三角形进行裁剪,裁剪后的图形应是一个封闭的图形。可采用线段裁剪法,

6、其方法可用书上的线段相交求点的公式,确定可见线段予以保存,不在窗口的线段则应舍弃。 图1四、实验组织运行要求本实验采用集中授课形式,每个同学独立完成上述实验要求。五、实验条件每人一台计算机独立完成实验。六、实验步骤(1) 将图形显示在初始位置。(2) 对图形各点按变换表达式作坐标变换,计算出各点变换后的相应点的坐标。(3) 将原来的图形抹去。(4) 在新的位置显示图形。七、思考题 采用中点分割算法完成图形的裁剪操作。八、实验报告实验报告主要包括实验预习、实验说明、程序代码、实验结果及分析等内容。实验二:图形的区域填充实验学时:4学时实验类型:验证 实验要求:必修一、实验目的区域填充是指先将区域

7、内的一点(常称为种子点)赋予给定颜色,然后将这种颜色扩展到整个区域内的过程。区域填充技术广泛应用于交互式图形、动画和美术画的计算机辅助制作中。本实验采用递归填充算法或扫描线算法实现对光栅图形的区域填充。通过本实验,可以掌握光栅图形编程的基本原理和方法。二、实验内容掌握光栅图形的表示方法,实现种子算法或扫描线算法。通过程序设计实现上述算法。建议采用VC+实现OpenGL程序设计。三、实验原理、方法和手段1 递归算法在要填充的区域内取一点(X,Y)的当前颜色记为oldcolor,用要填充的颜色newcolor去取代,递归函数如下:procedure flood-fill(X,Y,oldcolor,

8、newcolor:integer);begin if getpixel(framebuffer,x,y)=oldcolor then begin setpixel(framebuffer,x,y,newcolor); flood-fill(X,Y+1,oldcolor,newcolor); flood-fill(X,Y-1,oldcolor,newcolor); flood-fill(X-1,Y,oldcolor,newcolor); flood-fill(X+1,Y,oldcolor,newcolor); endend2 扫描线算法扫描线算法的效率明显高于递归算法,其算法的基本思想如下:(1

9、)(初始化)将算法设置的堆栈置为空,将给定的种子点(x,y)压入堆栈。(2)(出栈)如果堆栈为空,算法结束;否则取栈顶元素(x,y)作为种子点。(3)(区段填充)从种子点(x,y)开始沿纵坐标为y的当前扫描线向左右两个方向逐个象素进行填色,其值置为newcolor,直到抵达边界为止。(4)(定范围)以xleft和xright分别表示在步骤3中填充的区段两端点的横坐标。(5)(进栈)分别在与当前扫描线相邻的上下两条扫描线上,确定位于区间xleft,xright内的给定区域的区段。如果这些区段内的象素的颜色值为newcolor或者boundarycolor(边界上象素的颜色值),则转到步骤2,否则

10、取区段的右端点为种子压入堆栈,再转到步骤2继续执行。四、实验组织运行要求本实验采用集中授课形式,每个同学独立完成上述实验要求。五、实验条件每人一台计算机独立完成实验。六、实验步骤(1) 将图形显示在初始位置。(2) 给定种子点的坐标。(3) 显示从种子点开始的扩散过程。(4) 显示填充后的图形。七、思考题 如何实现光栅图形的扫描转换?八、实验报告实验报告主要包括实验预习、实验说明、程序代码、实验结果及分析等内容。实验三:曲线、曲面的生成实验学时:4学时实验类型:设计 实验要求:必修一、实验目的利用Bezier,B样条或NuBer(非均匀有理B样条)曲线,生成图2茶壶,以加深对曲线曲面生成三维图

11、形的原理,控制方法以及算法的实现(包括隐藏线,面的消除),要求生成的茶壶要光滑。二、实验内容掌握曲线、曲面的表示方法,实现茶壶的三维造型设计。通过程序设计实现上述算法。建议采用VC+实现OpenGL程序设计。三、实验原理、方法和手段采用三次Bezier 曲线或其它函数曲线生成图2所示茶壶。利用三次Bezier曲线生成时,n=3,若写成向量或写成 t 的三次参数式为:其中:P0,P1,P2,P3是特征多边形上四个顶点(控制点)的向量。若将其分解为二维平面中x、y方向的分量,则图2 茶壶以下分析以下茶壶的绘制方法: 可以假定壶体表面是一个旋转面,因此只要在x-y 平面上找到用来生成旋转面的基本曲线

12、就可以了。采用分段三次贝齐尔曲线,选十个控制点,它们的数据见表1(a),控制点位置与生成的曲线见图3a。这条曲线由三段组成,分别由点1,2,3,4,4,5,6,7,7,8,9,10控制。注意到4,7公用,且3,4,5在一直线上,6,7,8也在一直线上,因而可知三段曲线拼接后有一阶连续性。类似地,壶盖也视为旋转面,它的外轮廓由两段贝齐尔曲线生成,分别由1,2,3,4和4,5,6,7控制。由于3,4,5共线,4为公共点,故也有一阶连续性。这七个点的数据见表1(b),对应的轮廓线见图3b。旋转面的显示可给定拟合后外形线上的一点(x0,y0),绕y轴旋转得Y=Y0平面上一个圆。若只作沿Z轴平行投影变换

13、,即只去掉z分量,则它显示成一线段。一个避免这种现象的简便方法是将它们绕X轴适当旋转同一角度,然后再投影到x-y平面上显示。茶壶的壶嘴则要用贝齐尔曲面片来表示(也可以用曲线,但需插入控制点)。首先确定剖面的外轮廓线。这里有两条,每一条也由七个控制点控制,它们的数据见表1(c),外轮廓线见图3c,但是要注意现在要再增加二条线(每线也相应的有七个控制点),它们分别与两外轮廓线有相同的x、y坐标,只是z的坐标不再是零,而是有变化,这个变化的方式是:与11,12(21,22)相对应的=0.66:与13,14,15(23,24,25)对应的为z =0.25:与另二点对应的为z =0.15,这样壶嘴实际上

14、由二片贝齐尔曲面片(每片十六个控制点)组成。例如其中一片上的四个控制点分别为(11x,11y,0),(11x,11y,0.66),(21x,21y,0.66),(21x,21y,0),其中11x,11y分别指第十一个控制点x,y坐标。对每一曲面片的显示,实际上可以显示八条曲线,或者适当加密。类似地处理壶的把手,唯一与壶嘴有别处是另外两线的z不随控制点不同而变,即取定值z =0.3。数据见表1(d)。外轮廓线图见3d,最后,壶底可以用半径为1.5的圆盘来表示,容易想象它应如何加入这一图形生成过程中。图2就是用这种方法画出的茶壶。 表1(a) 壶体控制点数据 表1(b) 壶盖控制点数据xy10.0

15、3.020.83.030.02.740.22.5550.42.461.32.471.32.25xy11.40002.2500021.33752.3812531.43752.3812541.50002.2500051.75001.7250062.00001.2000072.00000.7500082.00000.3000091.50000.07500101.50000.0000表1(c) 壶嘴控制点数据xy(11) 1.7(21) 1.7(11) 1.27(21) 0.4(12) 2.6(22) 3.1(12) 1.275(22) 0.675(13) 2.3(23) 2.4(13) 1.95(23) 1.87

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1