《计算机图形学》新版实验指导书
- 格式:doc
- 大小:910.01 KB
- 文档页数:29
实验指导书
刘文涛
2013
目录
第一章图形学实验环境和要求 (4)
1.1 VC++实验环境 (4)
1.1.1 基本环境 (4)
1.1.1 开发图形程序的一般流程 (7)
1.1.3 基本绘图函数介绍 (11)
1.2 OpenGL (22)
1.2.1 OpenGL介绍 (22)
1.2.2 OpenGL开发环境 (24)
1.2.3 OpenGL函数 (24)
1.2.4 回调函数 (25)
1.2.4 一个典型OpenGL例程 (26)
1.3 实验要求 (29)
1.3.1 实验内容 (29)
1.3.2 实验方法 (29)
1.3.3 实验效果 (30)
第二章直线生成算法 (30)
2.1 实验原理 (30)
2.1.1 DDA算法 (30)
2.1.2 Bresenham算法 (30)
2.2 实验内容 (30)
2.3 参考示例程序 (30)
第三章圆和椭圆生成算法 (32)
3.1 实验原理 (32)
3.2 实验内容 (32)
3.3 参考示例程序1 (32)
3.4 参考示例程序2 (33)
第四章裁剪算法 (35)
4.1 实验原理 (35)
4.2 实验内容 (35)
4.3 示例程序 (35)
4.3.1 参考例子1 (35)
4.3.2参考例子2 (38)
第五章二维变换 (40)
5.1 实验原理 (40)
5.2 实验内容 (40)
5.3 示例程序 (40)
5.3.1参考例子1 (40)
第六章三维变换 (44)
6.1 实验原理: (44)
6.2 实验内容 (45)
6.3示例程序 (45)
第七章填充算法 (47)
7.1 实验原理: (47)
《计算机图形学》
实验指导书、实验报告
专业班级:
学生姓名:
学号:
指导教师:
黑龙江工程学院测绘工程学院
目录
实验一 直线段生成算法实现
一、实验目的
熟练掌握DDA 直线生成算法、中点直线生成算法、Bresenham 直线生成算法的算法思想,了解各个算法中寻找直线段上的像素点的过程。
二、实验学时 2学时
三、实验类型
现代实验、验证性、自立式
四、实验要求
1.根据指导书所给的参考代码,每人至少实现两种直线段的生成算法。
2.要求能够实现任意起始点和终止点坐标的直线段的绘制。
3.能够实现不同线型(实线、虚线、点划线)、不同线宽(单像素宽度、多像素宽度)的直线段的绘制。
五、实验原理与步骤 原理:
1.数值微分法(DDA )
设一直线段的起点和终点坐标分别为(xs , ys)和(xe , ye)。则直线段在X 和Y 方向的增量分别为: △x=xe- xs ,△y= ye- ys 设△t=max(|△x|,|△y|) 取时间步长为1/△t,若当前像素点坐标为(xi, yi),则下一个像素点的坐标可由以下两式确定:
xi+1=xi+dx=xi+Dx/Dt yi+1=yi+dy=yi+Dy/Dt 2.中点直线生成算法:
假定直线斜率0
当M 在Q 的下方-> P2离直线更近更近->取P2 。 M 在Q 的上方-> P1离直线更近更近->取P1
M 与Q 重合, P1、P2任取一点。
假设直线方程为:ax+by+c=0 其中a=y0-y1, b=x1-x0, c=x0y1-x1y0 F(x,y)=0 点在直线上面 F(x,y)>0 点在直线上方 F(x,y)<0 点在直线下方
《计算机图形学》课程实验指导
一.实验总体方案
1.教学目标与基本要求
(1)掌握教材所介绍的图形算法的原理;
(2)掌握通过具体的平台实现图形算法的方法,培养相应能力;
(3)通过实验培养具有开发一个基本图形软件包的能力。
2. 实验平台与考核
实验主要结合OpenGL设计程序实现各种课堂教学中讲过的图形算法为主。程序设计语言主要以C/C++语言为主,开发平台为Visual C++。
每次实验前完成实验报告的实验目的、实验内容、实验原理、实验代码四部分并接受抽查,实验完成后完成实验结果、实验体会两部分,本次实验课结束前提交。
3. 实验步骤
(1) 预习教材与实验指导相关的算法理论及原理;
(2) 仿照教材与实验指导提供的算法,利用VC+OpenGL进行实现;
(3) 调试、编译、运行程序,运行通过后,可考虑对程序进行修改或改进。
二. 实验具体方案
实验预备知识
OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。
1)与C语言紧密结合:
OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的。如果你曾经接触过TC的graphics.h,你会发现,使用OpenGL作图甚至比TC更加简单;
2)强大的可移植性:
微软的Direct3D虽然也是十分优秀的图形API,但它只用于Windows系统。而OpenGL不仅用于 Windows,还可以用于Unix/Linux等其它系统,它甚至在大型计算机、各种专业计算机(如:医疗用显示设备)上都有应用。并且,OpenGL 的基本命令都做到
计算机图形学基础实验指导书
目录
实验一直线的生成 ............................................................... -..2.
-
实验二圆弧及椭圆弧的生成........................................................ -..3 -实验三多边形的区域填充 ......................................................... - (4)
-
实验四二维几何变换 ............................................................. -..5.
-
实验五裁剪算法 ................................................................. -..6.
-
实验六三维图形变换 ............................................................. -..7.
-
实验七BEZIER 曲线生成......................................................... -..8.
-
实验八交互式绘图技术实现........................................................ -..10
-
实验一直线的生成
一、实验目的
掌握几种直线生成算法的比较,特别是Bresenham 直线生成算法
第一部分绪论
本指导书是根据《计算机图形学》课程实验教学大纲编写的,适用于计算机科学与技术的相关专业。
一、本课程实验的作用与任务
计算机图形学是研究利用计算机来处理图形的原理、方法和技术的学科。图形的处理包括了图形生成、图形描述、图形存储、图形变换、图形绘制、图形输出等等。计算机图形学与计算机图形处理技术是许多重要应用领域的基础,图形技术已经交叉渗透到各个应用学科中。通过理论学习,再通过相应的实践操作,可以让学生掌握计算机图形技术的知识,培养计算机图形处理的能力,熟悉计算机图形应用软件和系统的设计、使用和组织。本实验课程的任务是让学生学会如何把书本上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书本上的知识变“活”,起到深化理解和灵活掌握教学内容的目的。
二、本课程实验的基础知识
本课程的主要讲授了计算机图形学的概念,研究内容和应用领域;图形(图像)信息的计算机处理;图形系统的组成和图形设备;图形基元及其属性的生成、操作和实现;图形操作与处理技术;二维及三维图形的表示、变换、窗口-视区变换等操作;图形的窗口与视区,图形的填充与剪裁,图段与图层处理;隐藏线、面消隐技术,计算机图形标准以及图形数据结构和图形程序设计等。
三、本课程实验教学项目及其教学要求
第二部分基本实验指导
实验一Window 图形编程基础
一、实验目的
1、熟练使用实验主要开发平台VC6.0;
2、掌握如何在编译平台下编辑、编译、连接和运行一个简单的Windows 图形应用程序;
3、掌握Window 图形编程的基本方法;
《计算机图形学》实验指导书
首都师范大学信息工程学院
2005年9月7日赵艳红
通过学习《计算机图形学》课程可以了解和掌握计算机绘图的基本原理和算法,学会运用计算机编程语言和其它绘图工具绘制图形。《计算机图形学》课程包括课堂教学和上机实验,这本实验指导书是为了配合上机实验而编写的。
第I章介绍了利用C语言绘图的基础知识,主要是考虑C语言课程屮讲授的重点是标准C (ANSIC),较少涉及图形环境和图形函数,因此着重讲解了C语言图形初始化的方法和常用C语言图形函数,并对Turbo C 3.0集成环境作了介绍。
第2章讲述了实验的上机要求和操作步骤,实验中可按步骤执行。部分实验要求的后面附有C语言的源程序,可作为编程的参考。
上机实验时的注意事项和机房管理条例列于附录屮,请参照执行。
目录
第1章C语言绘图基础
1」图形与显示器基础
1.2C语言图形初始化
1.3Turbo C 3.0的集成环境第2章实验指导2」实验一直线的扫描转换
2.2实验二旋转的矩形
2.3实验三直线段的裁剪(或三维图形显示)2.4实验四曲线
2.5实验五分形几何造型
附录
1关于工程文件的使用
2Turbo C图形函数的分类
3Turbo C图形函数(ABC顺序)
4实验报告要求
5上机实验屮编程技巧
第1章C语言绘图基础
1.1图形与显示器基础
图形与计算机系统硬件有着密切的联系。
显示器的工作方式分为两种:
一是正文方式,二是图形方式,要在屏幕上显示图形,就必须工作在图形方式下。在图形方式中又分为多种模式,例如CGA,EGA,VGA等等。不同的模式显示的分辨率不同。
《电脑图形学》
实验指导书
傅由甲卢宇编
重庆理工大学电脑科学与工程学院
2008年10月
目录
目录.................................................................................................................................................. I 1 OPENGL与三维图形.. (1)
1.1O PEN GL介绍 (1)
1.2O PEN GL函数的语法 (3)
1.3O PEN GL是状态机 (4)
1.4O PEN GL相关的函数库 (4)
1.5O PEN GL的缓冲区 (4)
2 MICROSOFT VISUAL C++ 6.0 MFC编程基础 (6)
2.1MFC事件驱动简介 (6)
2.2MFC事件驱动编程 (6)
2.3在VC下实现O PEN GL程序的编译 (12)
实验1 WINDOWS操作系统图形开发基础 (13)
一、实验要求和目的 (13)
二、相关知识提要 (13)
三、实验内容及步骤 (15)
四、实验习题 (18)
实验2 基本光栅图形生成 (20)
一、实验要求和目的 (20)
二、相关知识提要 (20)
三、实验内容及题目 (23)
实验3 图形变换 (25)
一、实验要求和目的 (25)
二、相关知识提要 (25)
三、实验内容及步骤 (27)
四、实验习题 (28)
实验四交互式绘图技术 (29)
一、实验要求和目的 (29)
二、实验内容及步骤 (29)
三、实验习题 (34)
实验1 OpenGL初识
一、实验目的:
熟悉编程环境;了解光栅图形显示器的特点;了解计算机绘图的特点;利用VC+OpenGL作为开发平台设计程序,以能够在屏幕上生成任意一个像素点为本实验的结束。
二、实验内容:
(1)了解和使用VC的开发环境,理解简单的OpenGL程序结构。
(2)掌握OpenGL提供的基本图形函数,尤其是生成点的函数。
三、该程序的作用是在一个黑色的窗口中央画一个矩形、三角形和三个点,如图所示。下面对各行语句进行说明:
首先,需要包含头文件#include ,这是GLUT的头文件。
然后看main函数。int main(int argc, char *argv[]),这个是带命令行参数的main函数。这种以glut开头的函数都是GLUT工具包所提供的函数,下面对用到的几个函数进行介绍;
1)glutInit,对GLUT进行初始化,这个函数必须在其它的GLUT使用之前调用一次。其格式比较固定,一般都是glutInit(&argc, argv)就行;
2) glutInitDisplayMode,设置显示方式,其中GLUT_RGB表示使用RGB颜色,与之对应的还有GLUT_INDEX(表示使用索引颜色)。GLUT_SINGLE表示使用单缓冲,与之对应的还有GLUT_DOUBLE(使用双缓冲)。更多信息,以后的实验教程会有讲解介绍;
3) glutInitWindowPosition,设置窗口在屏幕中的位置;
4) glutInitWindowSize,设置窗口的大小;
5) glutCreateWindow,根据前述设置的信息创建窗口。参数将被作为窗口的标题。注意:窗口被创建后,并不立即显示到屏幕上。需要调用glutMainLoop才能看到窗口;
《计算机图形学基础》实验指导书
课程名称:计算机图形学基础
英文名称:Computer Graphics
课程性质:必修
课程编号:
适应专业:计算机科学与技术;软件工程
学时学分:总学时48,实验学时102,总学分2
编写人:王创存
一、实验课程任务与要求
1. 目的与任务:
计算机图形学实验教学是为了将学生的计算机操作能力、分析能力、工程设计能力与应用实践结合起来,引导学生由浅入深地掌握计算机图形学理论与算法,掌握交互构图能力,具备工程应用的图形学基础。本实验教学主要内容是要求学生用Visual Basic编程实现各种图形的绘制,强化学生的程序设计能力和程序调试能力,使学生巩固所学各种图形的生成算法的理论知识。实践教学共包括十项内容。
2. 实验基本要求:(以软件设计为主要表现形式)
上机前应准备好实验的程序设计算法描述与关键分析内容;
准备好程序测试数据和设备操作步骤,上机调试、运行;
完成每个实验后进行数据与程序对比分析,给出运行结果。
二、实验内容与学时安排
实验一、图形输入/输出设备的操作使用及简单图形的输出(2学时)
要求:(1)掌握图形设备的操作过程;测试图形设备的分辨率、性能;
(2)图形软件包与外部设备的连接参数配置;
(3)利用图形软件包绘制简单图形并在设备上输出;
(4)设计菜单,实现人机交互方式控制图形设备进行简单操作
实验二、编程环境及图形绘制基础练习(2学时)
题目:绘制分形树
基本要求:
)数据输入项为:树干的起点坐标,树干长度,树枝倾斜角度,树枝层数,最短树枝;)结果直接输出在窗体中。
附加要求:(1)通过用户输入可改变线型(实线、虚线与点划线)。
计算机图形学实验内容
计算机图形学实验
肖加清
实验一图形学实验基础
一、实验目的
(1)掌握VC++绘图的一般步骤;
(2)掌握OpenGL软件包的安装方法;
(3)掌握OpenGL绘图的一般步骤;
(4)掌握OpenGL的主要功能与基本语法。
二、实验内容
1、VC++绘图实验
(1)实验内容:以下是绘制金刚石图案。已给出VC++参考程序,但里面有部分错误,请改正,实现以下图案。
N=3
N=4
N=5
N=10
CP2();
virtual ~CP2();
CP2(double,double);
double x;
double y;
};
CP2::CP2()
{
this->x=0.0;
this->y=0.0;
}
CP2::~CP2()
{
}
CP2::CP2(double x0,double y0) {
this->x=x0;
this->y=y0;
}
//视图类的一个成员函数,这个成员函数可以放在OnDraw函数里调用。
//在视图类的头文件(.h)里定义此函数
void Diamond();
//在视图类的实现文件(.cpp)里实现此函数void CTestView::Diamond()
{
CP2 *P;
int N;
double R;
R=300;
N=10;
P=new CP2[N];
CClientDC dc(this);
CRect Rect;
GetClientRect(&Rect);
double theta;
theta=2*PI/N;
for(int i=0;i<N;i++)
{
P[i].x=R*cos(i*theta);
《计算机图形学》实验指导书
《计算机图形学》
实验指导书
目录
目录 (1)
概述 (2)
实验1 熟悉实验环境 (3)
1.1 实验要求和目的 (3)
1.2 实验课时 (3)
实验2 直线的生成 (4)
2.1 实验要求和目的 (4)
2.2 实验课时 (4)
2.3 实验环境 (4)
2.4 实验平台简介: (4)
2.5 思考题(选做) (5)
实验3 多边形扫描转换算法 (7)
3.1 实验要求和目的 (7)
3.2 实验课时 (7)
3.3 实验环境 (7)
3.4 实验平台简介: (7)
实验4 BSpline曲线绘制 (10)
4.1 实验要求和目的 (10)
4.2 实验课时 (10)
4.3 实验环境 (10)
4.4 实验平台介绍 (10)
实验5 光照模型(Illumination Model) (13)
5.1 实验要求和目的 (13)
5.2 思考题 (13)
5.3 实验课时 (13)
5.4 实验环境 (13)
5.5 实验平台介绍 (13)
附录A:实验报告 (17)
概述
(1)实验概述
运用某种程序设计语言设计并实现计算机图形学的直线、曲线、简单多面体(四面体)等基本图形元素的表示和绘制,以检验和巩固计算机图形学中的基本知识、加深对本课程原理、方法和技术的理解,锻炼和培养学生实际操作技能和解决实际问题的能力,使学生熟悉解决实际问题的过程。
(2)实验目的和要求
实验目的是检验和巩固所学知识与方法,通过实现基本图形元的表示和绘制过程,理解并掌握计算机图形学的原理、方法和技术,并灵活运用它们解决实际问题。
要求理解各实验相关的原理和实现方法,通过这些实验的训练,加深对课程中原理、方法和技术的理解,验证和巩固计算机图形学中的基本知识,锻炼和培养学生熟悉图形编程环境,理解课程中基本问题的求解算法和性能改进方法,并对结果进行充分测试。
前言
本课程的基本内容介绍,通过学习学生需要掌握的基本知识。
为了使学生更好地理解和深刻地把握这些知识,并在此基础上,训练和培养哪些方面的技能,设置的具体实验项目,其中哪几项实验为综合性、设计性实验。
各项实验主要了解、掌握的具体知识,训练及培养的技能。
本指导书的特点。
对不同专业选修情况说明。
实验:金刚石图案算法
实验学时:2
实验类型:(演示、验证√、综合、设计√、研究)
实验要求:(必修、选修)
一、实验目的
通过本实验的学习,使学生掌握Visual C++ 6.0编程的基本步骤,熟悉MFC 绘图相关类和方法,进一步熟悉面向对象的程序设计方法,为进一步学习基本图元的绘制、图形几何变换等内容作好准备。
二、实验内容
定义或输入半径和等分点个数,在一个以该半径为圆的圆周上求出每个等分点的坐标,然后所有等分点之间均用直线相连接,构成一个金刚石的图案。一个可能的图案如下:
三、实验原理、方法和手段
1、可以设计成菜单方式,用对话框来设置半径和圆周上等分点的个数。
2、利用CDC类中的lineto函数来绘制直线。
四、实验组织运行要求
学生自主训练为主的开放模式组织教学
五、实验条件
windows XP虚拟机和vc++6.0编程环境
六、实验步骤
由学生自行设计实验方案并加以实现的实验
七、思考题
考虑如何让屏幕得到刷新
实验1:中点扫描转换实现实验学时:4
实验类型:(演示、验证、综合、设计√、研究)
实验要求:(必修√、选修)
一、实验目的
通过本实验的学习,使学生掌握Visual C++ 6.0编程的基本步骤,进一步熟悉面向对象的程序设计方法,掌握中点法绘制圆形的算法原理,理解与构造中点偏差判别式,并能通过CDC类的SetPixel方法来实现,为进一步学习基本图元的绘制、图形几何变换等内容作好准备。