《计算机图形学》实验教学大纲
课程名称:
| 计算机图形学
|
|
|
课程编号:
| 408407
| 436404
|
|
适用专业:
| 计算机科学与技术
| 软件工程
|
|
总 学 分:
| 2
|
|
|
总 学 时:
| 36
|
|
|
其中实验学时
| 12
|
|
|
一、实验课程性质、目的与任务
《计算机图形学》实验是一门专业任选课实验,要求学生通过本课程实验,掌握各种图形的生成算法,能使用高级语言编程实现线、面、体的图形绘制,并提高学生程序设计能力。
培养与提高学生的自学能力、逻辑思维能力、程序设计能力、程序调试能力、书写表达能力。
使用高级语言编程实现直线、曲线、曲面、字符、区域填充、图形裁剪、三维真实物体等图形的绘制,使学生进一步掌握图形生成的基本方法和基本技能,加深对《计算机图形学》理论知识的理解。
二、实验教学基本要求
要求掌握基本图形的生成算法,并学会用高级程序设计语言实现算法。
上机实验要求:
1、准备好上机所需的程序;
2、上机输入和调试自己所编写的程序;
3、上机结束后,应整理出实验报告,实验报告应包括以下内容:实验项目名称;算法分析;程序清单;运行结果;对运行情况所作的分析以及本次调试程序所取得的经验,如果程序未能通过,应分析其原因。
三、实验项目与类型:
序号
| 实验项目
| 学时
| 实验性质
| 备注
|
验证
| 综合
| 设计
| 研究
探索
| 必做
| 选做
|
1
| 直线生成算法
(DDA算法、中点算法和Bresenham算法)
| 4
|
| √
|
|
| √
|
|
2
| 圆的生成算法
| 2
|
|
| √
|
| √
|
|
3
| 椭圆的生成算法
| 2
|
|
| √
|
| √
|
|
4
| 多边形填充算法
| 2
|
|
| √
|
| √
|
|
5
| 二维图形的几何变换
| 2
|
|
| √
|
| √
|
|
6
| 常用曲面和曲线的生成算法
| 2
|
|
| √
|
|
| √
|
7
| 常用消隐算法
| 2
|
|
| √
|
|
| √
|
8
| 真实感图形生成
| 2
|
|
| √
|
|
| √
|
| 合计
| 12
|
|
|
|
| 5
|
|
四、实验教学内容
实验一:直线生成算法
1、实验目的
通过实验,进一步理解和掌握DDA、中点算法和Bresenham算法;掌握以上算法生成直线段的基本过程;通过编程,会在VC或Matlab环境下完成用DDA、中点算法和Bresenham算法实现直线段的绘制。
2、方法原理
设计算法,并编程实现。
3、主要实验仪器及材料
计算机、VC++或Matlab语言程序设计环境
4、实验内容
熟悉VC或Matlab平台的使用;用DDA、中点算法和Bresenham算法实现直线段的绘制。
实验二:圆的生成算法
1、实验目的
通过实验,进一步理解和掌握中点算法、Bresenham算法和二阶差分算法;掌握以上算法生成圆的基本过程;通过编程,会在VC或Matlab环境下完成用中点算法、Bresenham算法和二阶差分算法实现圆的绘制。
2、方法原理
设计算法,并编程实现。
3、主要实验仪器及材料
计算机、VC++或Matlab语言程序设计环境
4、实验内容
用中点算法、Bresenham算法和二阶差分算法实现圆的绘制。
实验三:椭圆的生成算法
1、实验目的
通过实验,会在VC或Matlab环境下完成用中点算法、Bresenham算法和二阶差分算法实现椭圆的绘制。
2、方法原理
设计算法,并编程实现。
3、主要实验仪器及材料
计算机、VC++或Matlab语言程序设计环境
4、实验内容
用中点算法、Bresenham算法和二阶差分算法实现椭圆的绘制。
实验四:多边形填充算法
1、实验目的
掌握用扫描线法、边缘填充法、种子填充法种子填充算法或扫描线填充算法填充任一多边形区域的方法,并编程实现。掌握4连通与8连通区域的扩展性。掌握用堆栈结构实现种子算法。
2、方法原理
设计算法,并编程实现。
3、主要实验仪器及材料
计算机、VC++或Matlab语言程序设计环境
4、实验内容
用一种填充法对一多边形进行填充。写出该填充算法基本原理。写出该填充算法的程序。
实验五:二维图形的几何变换
1、实验目的
掌握二维图形变换:位置改变(平移、旋转)和变形(缩放、错切,反射、投影等)以及复合变换。
2、方法原理
设计算法,并编程实现。
3、主要实验仪器及材料
计算机、VC++或Matlab语言程序设计环境
4、实验内容
设有一三角形ABC,其中三个顶点为A(5,10),B(1,2),C(8,5),如三角形的顶点A不变,将AB和AC边缩小一倍后,求缩小后的三角形对于直线-2x+4y+3=0的对称变换后的图形。写出程序框图,程序,及运行结果;将一四边形以原点为中心,以150为间隔旋转。写出程序框图,程序,及运行结果。
实验六:常用曲面和曲线的生成算法
1、实验目的
通过实验,进一步理解和掌握生成Hermit、Bezier和B样条曲线的算法;掌握Hermit、Bezier和B样条曲线的基本生成过程;通过编程,会在一种语言环境下编程实现三次BEZIER曲线的绘制。
2、方法原理
设计算法,并编程实现。
3、主要实验仪器及材料
计算机、VC++或Matlab语言程序设计环境
4、实验内容
编程实现Hermit曲线的绘制;编程实现B样条曲线的绘制;编程实现Bezier曲线的绘制。
实验七:常用消隐算法
1、实验目的
掌握常用的一些消隐算法,凸多面体、凹多面体和二次曲面体的隐藏线消除;消除隐藏面算法:画家算法、Z缓冲区算法、扫描线算法、区域采样算法。
2、方法原理
设计算法,并编程实现。
3、主要实验仪器及材料
计算机、VC++或Matlab语言程序设计环境
4、实验内容
掌握用Roberts消隐法消除凸多面体斜投影图的隐藏面。会消除凸多面体正轴测投影图的隐藏面。掌握三维物体实体模型的数据存放方式,用数组实现实体模型,在程序中给定控制多面体的顶点坐标及点线信息。
实验八:真实感图形生成
1、实验目的
掌握实现半透明效果的方法;掌握反走样、雾化实现手段。掌握渲染三维图形的方法;
2、方法原理
设计算法,并编程实现。
3、主要实验仪器及材料
计算机、VC++和OpenGL
4、实验内容
绘制一个球和一个正方体,使用光照和着色,使用半透明和雾化功能。
五、考核方法
1.教师对学生实验过程完成情况进行详细登记,记入实验成绩中。
2.学生完成实验后按要求撰写实验报告,根据实验报告确定每次实验的等级。
3.实验成绩按20%比例计入课程期评总成绩中。
4.对缺实验成绩者,本课程不予通过。
六、实验指导书及主要参考书目
1、实验指导书
孙家广与胡事民编著,计算机图形学基础教程(第2版).北京:清华大学出版社,2009
2、 主要参考书
[1] (美)Francis S Hill等著、胡事民等译,计算机图形学(OpenGL版)第3版,北京:清华大学出版社,2009
[2] 胡事民,刘利刚,刘永进,张松海译. Francis S Hill Jr, Stephen M Kelley著.《计算机图形学(OpenGL版)》第3版.北京:清华大学出版社,2009.
[3] Samuel R. Buss. 3D Computer Graphics: A Mathematical Introduction with OpenGL.CambridgeUniversityPress, 2003.
[4] Donald Hearn, M.Pauline Baker. Computer Graphics (C Version).北京:清华大学出版社,1998
主 撰 人:罗如为
审 核 人:袁辉勇
2012.6