计算机图形学实验教学大纲

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机图形学实验教学大纲

一、课程中文名称(课程英文名称):计算机图形学(Computer Graphics)

二、课程编码:0921144005

三、课程目标和基本要求:

《计算机图形学》是信息与计算科学专业学生的专业选修课程。计算机图形学是计算机科学的重要分支,其应用已经日益广泛。该课程的教学目的与任务是让学生了解计算机图形学的基础内容,掌握对设计、使用和理解计算机图形系统所需的基本理论。

本课程实验包括图形的显示和输出技术、基本图形生成算法、图形的各种变换、曲线和曲面的绘制、图形的剪取、隐线和隐面的消除和产生有真实感图形的方法。用C++(或C)结合OpenGL 图形库进行与理论教学配合的实验。

四、课程总学时: 54 学时 [理论: 36 学时;实验: 18 学时]

五、课程总学分: 2.5 学分

六、适用专业和年级:

信息与计算专业,4年级第1学期

七、实验项目汇总表:

八、大纲内容:

实验序号 1 实验名称 C++图形程序设计基础

[实验目的和要求]

以C++Builder为程序设计平台,熟悉Windows图形程序设计的要点,为今后的图形学实验打下必要的基础。

[实验内容]

1. 在C++Builder集成开发环境中编写一个Windows应用程序。应用程序的窗体中每隔1秒交替显示“Hello, World!”和“世界,你好!”。

2. 参考补充材料“利用C++Builder开发基于图形的应用程序”,写一个图形学实验程序的框架。

[主要实验仪器与器材]

个人计算机

实验序号 2 实验名称基本图元生成算法

[实验目的和要求]

1. 以C++Builder为程序设计平台,实现整数中点画线法和Bresenham画线法,绘制直线;

2. 以C++Builder为程序设计平台,实现圆的中点画法和椭圆的中点画法。

[实验内容]

1. 实现斜率k在0和1之间时的整数中点画线法和Bresenham画线法。

2. 选作:实现任意斜率的整数中点画线法和Bresenham画线法。

3. 利用中点画圆法,绘制第二个八分圆;利用中点画椭圆法,绘制第一象限内的四分之一椭圆。

4. 选作:利用上述基本算法及对称性,绘制整圆和整椭圆。(提示:因为绘图区域的原点在左上角,所以绘制整圆和整椭圆时要作平移变换。)

[主要实验仪器与器材]

个人计算机

实验序号 3 实验名称填充算法

[实验目的和要求]

以C++Builder为程序设计平台,实现边缘填充算法与种子填充算法。

[实验内容]

1. 根据实验一中提供的图形学实验框架,编写程序实现边缘填充算法。

2. 根据实验一中提供的图形学实验框架,编写程序实现种子填充算法。

[主要实验仪器与器材]

个人计算机

实验序号 4 实验名称 OpenGL基础

[实验目的和要求]

以Visual C++为程序设计平台,练习编写简单的OpenGL入门程序。

[实验内容]

编制一个程序绘制GLUT中的三维茶壶模型,并编译运行。建议使用线框模型,也可尝试一下实体模型。

[主要实验仪器与器材]

个人计算机

实验序号 5 实验名称二维变换

[实验目的和要求]

1.了解OpenGL二维图形变换的三个函数及其计算机图形学的理论基础;

2.尝试利用OpenGL编写一个二维图形变换的小程序。

[实验内容]

1. 在理解的基础上,编写一个基于OpenGL的程序,绘制一个三角形,并分别绘制这个三角形经平移、缩放、旋转后的结果。

2.(选作)仅利用C++Builder(不用OpenGL)编写一个程序,功能有平面图形的平移、缩放、错切、旋转等。

[主要实验仪器与器材]

个人计算机

实验序号 6 实验名称二维裁剪

[实验目的和要求]

以C++Builder为程序设计平台,实现线段裁剪的Cohen-Sutherland算法和Liang-Barsky算法。

[实验内容]

实现Cohen-Sutherland算法和Liang-Barsky算法。要求程序界面上有裁剪窗口,能用鼠标画直线,然后用裁剪算法进行裁剪。

[主要实验仪器与器材]

个人计算机

实验序号7 实验名称样条曲线与样条曲面

[实验目的和要求]

1. 以C++ Builder为程序设计平台,练习编写B样条曲线的演示程序,理解相应的图形学原理和编程原理。

2. 以C++ Builder或Visual C++为程序设计平台,编写二次曲面、Bezier曲线曲面、NURBS曲线曲面的演示程序,理解相应的编程原理。

[实验内容]

1. 以C++ Builder为程序设计平台,写一个B样条曲线的演示程序,要求能够选择曲线的次数(2次或3次),能够选择均匀的和准均匀的B样条曲线,并且能够拖动已经画好的控制顶点来控制曲线。

2. 以C++ Builder或Visual C++为程序设计平台,编制课本第173页至191页的所有演示程序,自学相应的编程知识。

3. (选作)选择如下曲面的一种:二次曲面,Bezier 曲面,NURBS曲面,自行设定图形参数,加以绘制,并利用第八章所学的知识,转动视点,对该曲面进行观察。

[主要实验仪器与器材]

个人计算机

实验序号8 实验名称三维变换与三维观察

[实验目的和要求]

以Visual C++为程序设计平台,练习编写OpenGL三维图形变换程序,理解相应的图形学原理和编程原理。

[实验内容]

1 .编制书P221, 231上的程序,并编译运行。理解矩阵堆栈、图形变换函数的原理,掌握其用法。

2.编制书P225上的程序并编译运行,并对程序作如下修改,然后编译运行,同时体会gluPerspective(), gluLookAt(), glTranslate*()等函数的作用。

1)将程序中gluPerspective()的第一个参数fovy改为30.0和70.0,观察程序的效果,思考并回答为什么会出现这样的效果。

2)将函数glTranslatef()的第三个参数分别改为1.0和-1.0,观察、思考并回答为什么会出现这样的效果。

3)将glTranslatef()改为效果不变的对应的函数gluLookAt()。

3. 练习安装C++Builder上的OpenGL控件;并学习如何利用该控件开发OpenGL程序。将所给的cube.c转换为在C++Builder上的程序。将*.cpp文件和*.h文件贴在这里。

4.(选作)利用OpenGL开发一个完整的二维或三维图形变换的演示程序。

[主要实验仪器与器材]

个人计算机

实验序号9 实验名称真实感图形的生成与处理

[实验目的和要求]

1. 以C++ Builder或Visual C++为程序设计平台,编写有关着色处理、光照、材质、纹理的演示程序,理解相应的编程原理。

2. 综合运用本课程所学的有关知识,编写具有一定真实感效果的程序。

[实验内容]

1 . 以C++ Builder为程序设计平台,编制一个演示程序,程序的效果为一个两面材质不同的波纹状曲面片,曲面片可用鼠标拖动旋转。

2. 以C++ Builder为程序设计平台,编制一个演示程序,程序的效果为一个两面材质不同的波纹状曲面片,在曲面的两面贴上纹理,曲面片可用鼠标拖动旋转。

3. 以C++ Builder为程序设计平台,编制程序演示一个可以滚动的立方体,立方体表面具有纹理贴图,并具有半透明效果。

[主要实验仪器与器材]

个人计算机

相关文档
最新文档