《计算机图形学实验教案》由会员分享,可在线阅读,更多相关《计算机图形学实验教案(8页珍藏版)》请在金锄头文库上搜索。
1、洛阳师范学院计算机科学系计算机科学与技术专业 课程教案专 业 名 称:计算机网络 课 程 名 称:计算机图形学实验 指 导 教 师: 20062007学年第一学期 填写时间:2006 年 10 月课程基本信息(一)实验课名称 计算机图形学实验(二)学时学分:周学时 1周数 18,0.5学分 (三)使用教材:罗笑南主编, 计算机图形学第三版, 出版地,中山大学出版社,2003年 3月版 (四)指导教师: (五)授课班级:计算机系 2004网络班,66人 (六)教学要求: (1)要求学生熟悉一门可视化编程语言,使用这门语言来做计 算机图形学实验,经过考察和选择,最合适的编程语言有 visual c
2、+,delphi,本课程选择以 vc 为主讲解,学生也可以用 deiphi 语言 做所有的实验,要求最后学生把所有实验集成到一个界面下,提交 一个程序,这个也作为计算机图形学这门课程的主要考察方式。 (2)让学生在掌握计算机图形学的一些基本算法基础上,不使 用语言系统自带的一些函数,而是根据图形学算法来自己构造可执 行的程序。 (3)做好示范操作() ; (4)观察指导学生在实验过程中操作情况及其结果; (5)通过综合实验或方案设计,尽量联系实际,强化学生技能 和基础知识的综合应用,开发学生智力。 (6)定期开放实验点,指导做设计创新实验。 (七)预期目标:巩固课堂理论,深化基础知识,增强学生
3、的 动手能力,培养学生的创新精神。(八)考查方式:平时考查+实验上机考勤+实验报告。 实验一:VC6环境快速入门 学时数:2课时 实验类型:验证型 实验目的和要求:初步掌握VC6编译器的环境和使用,能快速的进 行VC 环境下的编程,熟悉VC框架结构,熟悉类向导的使用,能编 写简单的对话框程序,熟悉文档/视结构的框架,能将菜单映射到函 数,实现简单的VC框架编程。实验一总分10分。 实验报告要求:必须记载实验中遇到的困难和问题,写好实验步骤, 突出结果和问题讨论,鼓励创新。 注意事项: 1. 因为后面要求所有实验集成在一个框架下面,为了简单 起见,在vc中创建单文档/视图结构,创建工程名以 “某
4、某某计算机图形学实验”为名,不允许随便使用不 同的菜单映射来实现各个实验。 2. 注意vc编程下的命名规则,创建的资源都有I D,因 为要使用类向导来编程,所以每个名字都要起的有意义, 不要乱起名字,这样以后程序庞大起来后不便于阅读。 3. 实验一还要求在菜单中弹出一个对话框,并在对话框中 使用几个控件,实现一个简单的交互计算,同学们要注 意创建对话框资源和创建对话框类的顺序,如果顺序颠 倒的话会出现一个典型的错误,因为创建类时候没有映 射对话框资源,这个错误很容易改正。实验二:几种画线算法的实现 学时数:4课时 实验类型:设计型 实验目的:熟悉计算机图形学中提到的三种画线算法。 基本要求:实
5、现课件中介绍的三种简单的画线算法。做在实验一同 一个环境界面下。 提高性要求:1.要求同学们实现画虚线方法和一定宽度直线方法;2.实 现一种交互方法画直线,比如鼠标捕捉画线,或者输入对话框确定 线段起始点画线。 实验报告要求:必须记载实验中遇到的困难和问题,写好实验步骤, 突出结果和问题讨论,鼓励创新。 注:本实验总分20分,实现基本要求的同学得分12分,实现提高 性要求的同学或构造基本算法有创新的同学根据情况得16分或满分。 注意事项: 1 实现最基本的绘制直线算法,要应用到vc绘图设备和 环境,注意那个常用初始化设备环境格式。 2 在实现实验要求基本功能的同时,扩展程序功能,比如 绘制各种
6、虚线,绘制粗线段等等,要能做到举一反三, 灵活编程。 3 关于函数的接口部分要注意,类声明中函数的接口要与 来执行体部分函数接口一致,否则会导致出错。实验三:绘制简单的二次曲线 学时数:4课时 实验目的:进一步熟悉VC的编译环境,能在计算机中编程绘制出一 些简单的二次曲线,比如圆弧,圆,抛物线,椭圆等。 基本要求:实现课件中介绍的基本绘制二次曲线几种算法。做在实 验一实验二同一个环境界面下。 提高性要求:实现一种交互方法画二次曲线,比如鼠标捕捉画线, 或者输入对话框确定一些曲线性质的参数来确定要绘制直线,实现 课程中提到的三点画圆方法。 实验报告要求:必须记载实验中遇到的困难和问题,写好实验步
7、骤, 突出结果和问题讨论,鼓励创新。 注:本实验总分20分,实现基本要求的同学得分12分,实现提高 性要求的同学或构造基本算法有创新的同学根据情况得16分或满分。 注意事项: 1 关于函数的接口部分要注意,类声明中函数的接口要与来 执行体部分函数接口一致,否则会导致出错。 2 自己构造的逐点绘制圆、椭圆可以选择不同的方向绘制和 象限绘制,注意x轴,y轴坐标方向的变化,还要注意简 化计算那个递加方法。3 给出不在直线上三个点,要求绘制出过这三点的圆,其实 很简单,结合数学上的方法求解圆心和半径,然后近似的 绘制出来。 实验四:实现种子填充算法 学时数:2课时 实验类型:设计型 实验目的:进一步熟
8、悉VC的编译环境,对屏幕上已经绘制的直线, 二次曲线等,选中一空白点,进行种子填充算法,要求如果选中的 点在封闭的范围内,则填充,如果在不封闭的图形内,则渗漏到一 个大的封闭的范围或者整个屏幕。 基本要求:能实现对一个封闭圆或封闭的多边形能进行种子填充算 法。实验还是做在前面整个实验的环境界面下。 提高性要求:1.实现鼠标捕捉这个种子点。2.要求对封闭范围,不 封闭范围进行测试。比如对一个圆,如果圆的一部分没能显示,在 用户区的坐标外,但这个圆是封闭的,要能正确填充。 实验报告要求:必须记载实验中遇到的困难和问题,写好实验步骤, 突出结果和问题讨论,鼓励创新。 注:本实验总分20分,实现基本要
9、求的同学得分12分,实现提高 性要求的同学或构造基本算法有创新的同学根据情况得16分或满分。 注意事项: 1 本实验建立在实验二和实验三的基础之上,所以这个首先 要注意全局变量和局部变量的区别,否则程序运行判断条件困难。 2 注意这个程序要求鼠标选择种子点实现交互,这个是通过 类向导里面加入的一个消息函数,而不是常规的自定义函 数。 实验五:在对话框中实现交互式绘图 学时数:4课时 实验类型:综合型 实验目的:实验一中我们在菜单映射中弹出了一个对话框,并在对 话框类中做了个简单的交互式的加法计算实验,本实验就是在实验 一的背景下,在菜单映射中弹出对话框,实现在对话框中交互式绘 图。要求在对话框
10、中使用几个命令按钮(对应类的绘图函数)和一些 编辑框控件获取用户输入。 基本要求: 1.要求使用画刷,在对话框中刷出一个范围进行绘图。其中使用用 户坐标系绘图,在屏幕中首先绘制一个坐标系,并要求有刻度标志。 2.实现交互式输入绘制直线,要求调用参数形式的bresenham绘制 直线方法。 提高性要求: 实现绘制复杂函数功能,比如样条曲线,Bezier曲线,正弦余弦函 数等。在用户坐标系的x轴正方向上绘制几个周期,使用小的直线 段来逼近曲线,该绘制交互由步长控制,步长就是一次性跨越几个 像素。难点:用户坐标系同窗口坐标系的转换。 实验报告要求:必须记载实验中遇到的困难和问题,写好实验步骤, 突出
11、结果和问题讨论,鼓励创新。 注:本实验总分15分,实现基本要求的同学得分10分,有创新的 同学根据情况得12分或满分。 注意事项: 1 本实验属于综合型实验,首先和实验一方法类似,创建一 个对话框类,实验主要是在这个建立的对话框类中进行交 互式绘图,绘制直线,复杂的曲线。涉及到系统坐标和用 户定义坐标的转换。 2 涉及到自编函数的调用,比如引用实验二的bresenham绘 制直线方法,把它表达为形参形式,对这个函数的接口也 进行了一些变化,注意体会。 3 使用小的直线段来模拟曲线段的思想来绘制曲线,可以通 过算法求得某复杂曲线可能会经过某些离散点,将这些离 散点用直线连接起来,可以表达曲线,当然取的点越多, 绘制的曲线也越好,这就涉及到理解步长这一个概念。 4 与实验一创建对话框类相似,要注意创建对话框资源和创 建对话框类的顺序,如果顺序颠倒的话会出现一个典型的 错误,因为创建类时候没有映射对话框资源,这个错误很 容易改正。计算机图形学这门课程一共开设这五个必做的实验,此外还有 几个选做的实验,选做实验六是一个关于二维裁剪的,选做实验七 是关于最小二乘拟合的,选做实验八是关于三维消隐的,具体根据 学生们的掌握情况和课程情况,针对学有余力的同学,做出来的同 学可以有效提高计算机图形学这门课程的综合成绩。