文档介绍:该【计算机图形学实验指导书 】是由【知识徜徉土豆】上传分享,文档一共【86】页,该文档可以免费在线阅读,需要了解更多关于【计算机图形学实验指导书 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。《计算机图形学》
实 验 指 导 书
郗润平 编制
西北工业大学计算机学院
二○一一年四月 修订
说 明
根据我院《计算机图形学》教学大纲规定及课堂教学内容,参阅其它院校本课程教学与实验课的内容,并结合学生和实验室的情况,特编制本实验指导书供学生在上机实验课时参考使用。
本实验大纲择选与课程教学较为密切的若干实验,每个实验分别给出了参考机时数,实验时可根据具体的机时安排情况选做。在附录中简朴地介绍了Open GL 和DirectX 3D两个三维图形开发平台基本概念和相关的重要函数,供感爱好同学入门学习参考使用。
补充了MFC中几种常用DC的使用说明等;(附录二1314)
补充了VC下OpenGL编程框架细节。(附录三)
补充MFC菜单使用;(附录二10)
补充了对话框使用;(附录二11)
鼠标拾取点示例。(附录二12)
补充了工具条的使用 (附录二13)
增长三(二)9修改OnEraseBkgnd()函数,严禁重绘背景,避免动画时闪烁。 于Sydney
目 录
实验一 直线生成算法 1
实验二 圆弧生成算法 2
实验三 窗口菜单交互界面 2
实验四 区域填充算法 3
实验五 裁剪算法算法 3
实验六 图形软件开发包/库应用 3
实验七 曲线的生成算法 4
实验八 曲面生成算法 4
实验九 二维图形变换 5
实验十 三维图形变换 5
实验十一 真实感图形 6
附 录 7
一、C语言中图形函数及其用法 7
二、VC集成开发环境下基于MFC绘图 16
三、OpenGL绘图 30
四、DirectX 3D绘图 35
五、实验报告模板 39
六、《计算机图形学》上机实验评分标准 40
实验一 直线生成算法
一、实验教学目的与基本规定
1. 了解光栅图形显示器的工作原理和特点;
2. 学习C/VC环境下的基本绘图方法;
3. 实践与巩固直线的基本生成算法。 
4. 掌握直线扫描转换算法的原理及实现;
二、实验课程内容 (2学时)
基于光栅图形显示器,在C环境中生成不同粗细和线型的任意直线。
1. 了解光栅图形显示器的特点;
2. 熟悉C环境下图形程序的绘图方法;
3. 实践DDA、中点及Bresenham基本算法,并至少用两种基本算法生成任意直线;
i. 任意斜率:
-1≤k<0 , (50,400)à(500,50);
0≤k≤1,如(50,50)à(300,200):
1<|k|<∞, 如(50,50)à(300,400);
k=∞,如(200,50)à(200,400)。
ii. 任意起始点: 如(200,500)à(100,200), (300,200)à (50,50)
4. 改善方法,实现对直线实现线宽和线型(虚线、点划线等)的控制。
三、实验参考
有关C环境下绘图介绍请参见附录一,以下实例为绘制一条直线(TC编译环境),供上机实验时参考使用。
#include ""
#include ""
main()
{
int x0=50,y0=50,
x1=450,y1=450,color=3; //定义点(50,50),(450,450)和颜色color
int x,y;
int gdriver=DETECT, gmode; //定义图形驱动程序和显示模式
initgraph(&gdriver,&gmode, ""); //图形方式初始化
cleardevice(); //清屏
y=y0;
for(x=x0;x<=x1;x++)
{
putpixel(x,y,color); //用colo颜色绘制点(x,y)
y=y+1;
}
getch(); //让画面停住, 等按一下键盘再继续
closegraph(); //关闭图形方式
return(0);
}
注:VC集成开发环境下基于MFC绘图可参考附录二
实验二 圆弧生成算法
一、实验教学目的与基本规定
1. 学习圆(弧)的基本生成算法;
2. 了解光栅图形显示器的工作原理和特点;
3. 实践圆(弧)的基本生成算法;
4. 掌握圆弧扫描转换算法的原理及实现;
5. 了解反走样技术。
二、实验课程内容 (2学时)
基于光栅图形显示器,在C环境中生成任意圆弧,并实践反走样技术。
1. 巩固C环境下的绘图方法;
2. 用中点和Bresenham算法生成任意位置圆(弧);
3. 改善方法,实现线宽和线型的控制;
4. 运用反走样技术改善直线和圆弧的生成算法。
实验三 窗口菜单交互界面
一、实验教学目的与基本规定
1. 了解窗口系统有关概念,学习相关知识;
2. 了解和学习菜单相关与知识;
3. 理解交互的重要意义。
二、实验课程内容 (3学时)
MS-Windows环境下窗口、菜单交互界面实现。
三、实验参考
Win32编程方式参考教材P108-128有关内容,MFC编程方式可参考附录二10-12。
实验四 区域填充算法
一、实验教学目的与基本规定
1. 掌握区域填充的基本算法原理;
2. 会使用字符的图形输出。
二、实验课程内容 (4学时)
1. 多边形的扫描线、边标志及扫描线种子填充算法(至少实现两个算法);
2. 在屏幕上输出矢量或点阵字符。
三、实验参考
参考教材有关内容。
实验五 裁剪算法算法
一、实验教学目的与基本规定
熟悉裁剪算法的基本原理。
二、实验课程内容 (2学时)
实现直线的Cohen-Sutherland、中点分割和参数化裁剪算法(至少实现两种裁剪算法)。
三、实验参考
参考教材有关内容。
实验六 图形软件开发包/库应用
一、实验教学目的与基本规定
1. 会使用一种图形软件开发包;