计算机图形学实验及课程设计

上传人:飞*** 文档编号:51719306 上传时间:2018-08-16 格式:PPT 页数:103 大小:5.15MB
返回 下载 相关 举报
计算机图形学实验及课程设计_第1页
第1页 / 共103页
计算机图形学实验及课程设计_第2页
第2页 / 共103页
计算机图形学实验及课程设计_第3页
第3页 / 共103页
计算机图形学实验及课程设计_第4页
第4页 / 共103页
计算机图形学实验及课程设计_第5页
第5页 / 共103页
点击查看更多>>
资源描述

《计算机图形学实验及课程设计》由会员分享,可在线阅读,更多相关《计算机图形学实验及课程设计(103页珍藏版)》请在金锄头文库上搜索。

1、计算机图形学实验及课程设计孔令德 2012年春于太原实验任务书 实验目的:巩固学生对计算机图形学的直线扫描转换原理 、有效边表填充原理、三维透视投影原理、ZBuffer深度缓 冲消隐原理和真实感图形生成原理的理解,增加学生对真 实感图形生成算法的感性认识,强化训练学生使用Visual C+的MFC编写相关图形类的技能。此前,课堂上已经完成计算机图形学实践教程(Visual C+版)的43个验证性实验的讲解,在此基础上,要求 学生能综合使用全部教学内容完成综合性实验。 实验要求:要求学生在实验前了解综合性实验的目的和 要求,观察实验效果图。在实验中认真理解每个类的结构 ,通过搭积木的方式完成实验

2、任务。实验结束后按要求整 理相关类的源程序,撰写实验报告,尤其需要对难点和重 点进行详细说明。一、实验目的与要求实验任务书 学时:教学总学时48,其中实验学时8。二、实验项目与提要实验任务书 三、成绩考核方法 本实验与计算机图形学课程同步开设,成绩占期末总成 绩的20%40%。 四、本课程与其他课程的联系和分工先修课程:高等数学、线性代数、MFC程序设计、数据 结构。实验1 绘制金刚石图案1.1 实验目的 掌握二维坐标系模式映射方法。 掌握动态内存的分配和释放方法。 掌握二维点类的定义方法。 掌握对话框的创建及调用方法。 掌握对话框的数据交换和数据校验方法。 掌握Test工程实验框架的创建方法

3、。 掌握金刚石图案的设计方法。实验1 绘制金刚石图案1.2 实验要求 定义二维坐标系原点位于屏幕中心,x轴水平向右为正,y轴铅 直向上为正。 以二维坐标系原点为圆心绘制半径为r的圆,将圆的n等分点使 用直线彼此连接形成金刚石图案。 程序运行界面提供“文件”、“绘图”和“帮助”三个弹出菜单项。“文 件”菜单提供“退出”子菜单项,用于退出应用程序;“绘图”菜单 提供“金刚石”子菜单项,用于绘制金刚石图案;“帮助”菜单提供 “关于”子菜单项,用于说明开发信息。 选择“金刚石”子菜单项,打开“输入参数”对话框,输入“等分点 个数”和“圆的半径”。 在屏幕客户区中心绘制金刚石图案。实验1 绘制金刚石图案

4、1.3 效果图将半径为300的圆,划分30个等分点后,得到的金刚石图案 实验效果如图1-1所示。图1-1金刚石图案效果图实验2 绘制任意斜率的直线段 2.1实验目的 掌握任意斜率直线段的中点Bresenham扫描转 换算法。 掌握CLine直线类的设计方法。 掌握状态栏编程方法。实验2 绘制任意斜率的直线段2.2 实验要求 设计CLine直线类,其数据成员为直线段的起点坐标P0和终点 坐标P1,成员函数为MoveTo()和LineTo()函数。 CLine类的LineTo()函数使用中点Bresenham算法绘制任意斜 率k的直线段,包括k、k1、0k1、-1k0和k-1五种情况。 在屏幕客户

5、区按下鼠标左键选择直线的起点,保持鼠标左键按 下并移动鼠标到另一位置,弹起鼠标左键绘制任意斜率的直线 段。 在状态栏动态显示鼠标光标移动时的位置坐标。实验 2 绘制任意斜率的直线段2.3 效果图任意斜率的直线段绘制效果如图2-1所示。图2-1 任意效率直线段绘制效果图实验3 交互式绘制多边形 3.1实验目的 掌握双缓冲绘图技术。 掌握人机交互技术。 掌握填充动态多边形的有效边表算法。 实验3 交互式绘制多边形3.2 实验要求 使用鼠标在屏幕客户区绘制任意点数的多边形。要求使用橡皮 筋技术动态绘制每条边;鼠标移动过程中按下Shift键时可绘制垂直边或水平边;将多边形的终点移动到多边形的起点时自动

6、封闭多边形;在绘制多边形的过程中,状态栏动态显示鼠标光标的位置坐标。 当开始绘制多边形时,更改鼠标光标为十字光标,多边形绘制完毕后恢复为箭头光标。 多边形闭合后自动调用有效边表算法填充多边形内部区域。实验3 交互式绘制多边形3.3 效果图交互式绘制多边形效果如图3-1所示。图3-1 交互式绘制的多边形效果图实验4 二维几何变换 4.1实验目的 掌握二维平移、比例、旋转几何变换矩阵。 掌握矩阵乘法的编程实现。 掌握相对于任一参考点的比例变换和旋转变换 。 掌握定时器的使用方法。 掌握边界碰撞检测方法。 掌握静态切分视图框架的设计方法。实验4 二维几何变换4.2 实验要求 使用静态切分视图,将窗口

7、分为左右窗格。左窗格为继承于 CFormView类的表单视图类CLeftPortion,右窗格为一般视图类CTestView。 左窗格提供代表“图形顶点数”(4、8、16和32)、“平移变换”(x方向和y方向)、“旋转变换”(逆时针和顺时针)和“比例变换”(放大和缩小)的滑动条,用于控制右窗格内的图形变化。 右窗格内以屏幕客户区中心为图形的几何中心,绘制图形顶点 数从4变化为8、16和32的正多边形。为了表达图形的旋转,多边形的每个顶点和图形中心使用直线连接。实验4 二维几何变换4.2 实验要求 使用双缓冲技术控制图形在右窗格内的无闪烁运动。设定屏幕背景色为黑色,图形颜色为白色。 使用客户区边

8、界检测技术,改变图形在右窗格内和客户区边界碰撞后的运动方向。实验4 二维几何变换4.3 效果图二维几何变换效果如图4-1所示。图4-1 二维几何变换效果图 实验5 直线段裁剪 5.1实验目的 掌握直线段端点编码方法。 掌握Cohen-Sutherland直线段裁剪算法。实验5 直线段裁剪5.2 实验要求 定义二维坐标系原点位于屏幕中心,x轴水平向右为正,y轴铅 直向上为正。 在客户区中央固定绘制颜色为RGB(128,0,0)的3像素宽的矩形 代表裁剪窗口。裁剪窗口的左上角点为(-300,100),右下角点 为(300,-100)。 使用鼠标在屏幕上动态绘制任意直线段。 选择裁剪按钮根据直线段和

9、窗口的相对位置,对直线段进行裁 剪,得到位于窗口内的直线段,删除窗口外的直线段。 直线段绘制之前,裁剪按钮无效;直线段绘制之后,裁剪按钮 有效。实验5 直线段裁剪5.3 效果图直线段裁剪前效果如图5-1所示,直线段裁剪后效果如图5-2 所示。图5-1 直线段裁剪前效果图 图5-2 直线段裁剪后效果图 实验6立方体线框模型正交投影 6.1实验目的 掌握使用点表和面表构造立方体线框模型的方 法。 掌握立方体线框模型二维正交投影图的绘制方 法。 掌握立方体线框模型二维正交投影图的旋转方 法。实验6立方体线框模型正交投影6.2 实验要求 在屏幕中心建立三维坐标系Oxyz,x轴水平向右,y轴铅直向上 ,

10、z轴垂直于屏幕指向观察者。 以三维坐标系Oxyz的原点为立方体体心绘制边长为a的立方体 线框模型。 使用旋转变换矩阵计算立方体线框模型围绕三维坐标系原点变 换前后的顶点坐标。 使用双缓冲技术在屏幕上绘制三维立方体线框模型的二维正交 投影图。 使用键盘方向键旋转立方体线框模型。 使用工具条上的“动画”按钮播放立方体线框模型的旋转动画。实验6立方体线框模型正交投影6.3 效果图立方体线框模型正交投影效果如图6-1所示。图6-1 立方体线框模型正交投影效果图实验7立方体线框模型透视投影 7.1实验目的 掌握使用点表和面表构造立方体线框模型的方 法。 掌握视点球坐标的计算方法。 掌握立方体线框模型的二

11、维透视投影图的绘制 方法。 掌握立方体线框模型的二维透视投影图的旋转 方法。实验7立方体线框模型透视投影7.2 实验要求 在屏幕中心建立三维坐标系Oxyz,x轴水平向右,y轴铅直向上 ,z轴垂直于屏幕指向观察者。 以三维坐标系Oxyz的原点为立方体体心绘制边长为a的立方体线框模型。 使用双缓冲技术在屏幕上绘制三维立方体的二维透视投影图。 使用键盘方向键旋转立方体线框模型。 使用工具条上的“动画”图标播放立方体线框模型的旋转动画。 按下鼠标左键缩小立方体,按下鼠标右键增大立方体。实验7立方体线框模型透视投影7.3 效果图立方体线框模型透视投影效果如图7-1所示。图7-1 立方体线框模型透视投影效

12、果图实验8 动态三视图 8.1实验目的 掌握主视图变换矩阵。 掌握俯视图变换矩阵。 掌握侧视图变换矩阵。 掌握斜等测图绘制方法。实验8 动态三视图8.2 实验要求 在屏幕中心建立三维坐标系Oxyz,x轴水平向右,y轴 铅直向上,z轴垂直于屏幕指向观察者。 将屏幕静态切分为4个窗格。左上窗格绘制主视图、 左下窗格绘制俯视图、右上窗格绘制侧视图,右下窗 格绘制斜等测消隐线框模型。 使用正交投影绘制主视图、俯视图和侧视图,使用斜 等测投影绘制多面体线框模型。 使用键盘方向键旋转右下窗格多面体斜等测线框模型 ,其余三个窗格内的视图随之动态改变。 使用工具条上的动画按钮播放所绘制物体的斜等测线 框模型及

13、三视图的旋转动画。实验8 动态三视图8.3 效果图多面体动态三视图的效果如图8-1所示。图8-1 多面体动态三视图的效果图实验9 动态绘制Bezier曲线 9.1实验目的 掌握直线的参数表示法。 掌握德卡斯特里奥算法的几何意义。 掌握绘制二维Bezier曲线的方法。实验9 动态绘制Bezier曲线9.2 实验要求 使用鼠标左键绘制个数为10以内的任意控制点 ,使用直线连接构成控制多边形。 单击鼠标右键绘制Bezier曲线。 在状态栏显示鼠标的位置坐标。 Bezier曲线使用德卡斯特里奥(de Casteliau) 算法绘制。实验9 动态绘制Bezier曲线9.3 效果图动态绘制Bezier曲线

14、效果如图9-1所示。图9-1 动态绘制Bezier曲线效果图实验10 交互式三次B样条曲线 10.1 实验目的 掌握三次B样条曲线的基函数。 掌握分段三次B样条曲线的绘制方法。 掌握三次B样条曲线的特殊构造技巧。 掌握图形顶点可视化移动技巧。实验10 交互式三次B样条曲线10.2 实验要求 给定9个控制点:P0 (104,330),P1= (204,231) ,P2= (286,362),P3= (363,145),P4= (472,527),P5= (548,228),P6= (662,40), P7= (830,450),P8= (930,350)。绘制三次B样 条曲线。 移动鼠标光标到控

15、制点上,光标变为手形,显 示其坐标信息。 拖动控制点,曲线形状随之发生改变,验证三 次B样条曲线的特殊构造技巧。实验10 交互式三次B样条曲线10.3 效果图三次B样条曲线效果如图10-1所示。 图10-1 三次B样条曲线效果图实验11 旋转的Koch雪花 11.1 实验目的 掌握Koch雪花的构图方法。 掌握递归模型的实现算法。实验11 旋转的Koch雪花11.2 实验要求 建立平面二维坐标系,原点位于屏幕客户区中 心,x轴水平向右为正,y轴铅直向上为正。 以原点为圆心绘制半径为r的圆,与y轴交于P0 点。从P0点开始,顺时针方向将圆三等分,得 到P1和P2点。P0P1P2构成等边三角形,如

16、图11 -1所示。 沿着等边三角形的三条边外侧分别绘制三段递 归深度为4,夹角为60的Koch曲线,形成 Koch雪花,如图11-2所示。实验11 旋转的Koch雪花11.2 实验要求 设置背景色为黑色,Koch雪花为白色,代表雪花中心点的十字 线以蓝色绘制。 设置动画按钮,控制Koch雪花围绕坐标系原点顺时针旋转。实验11 旋转的Koch雪花11.3 效果图旋转的Koch雪花绘制效果如图11-3所示 。 图11-3 旋转的Koch雪花效果图实验12 颜色渐变立方体 12.1 实验目的 掌握凸多面体消隐算法。 掌握双线性颜色插值算法。 建立基本三维场景。实验12 颜色渐变立方体12.2 实验要求 建立三维坐标系Oxyz,原点位于屏幕客户区中

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号