计算机图形学实验指导书2011
计算机图形学实验指导书(vc++版)

实验指导书刘文涛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)7.2 实验内容 (47)7.3示例程序 (47)第八章曲线曲面 (50)8.1 实验原理 (50)8.2 实验内容 (50)8.3示例程序 (51)8.3.1 参考例子(1) (51)8.3.2 参考例子(2) (52)8.3.3 参考例子(3) (54)8.3.4 参考例子(4) (56)第九章真实感图形绘制 (59)9.1 实验原理 (59)9.2 实验内容 (59)9.3示例程序 (59)9.3.1参考例子(1) (59)9.3.2参考例子(2) (61)9.3.3参考例子(3) (63)第十章动画 (66)10.1 实验原理 (66)10.2 实验内容 (66)10.3示例程序 (66)10.3.1 参考例子 (66)参考文献: (72)第一章图形学实验基础1.1 VC++实验环境1.1.1 基本环境Microsoft Visual C++ 6.0 是微软推出的功能强大的可视化C/C++语言编译器,运行在Windows 9x/2000/NT等平台上,可以建立32位应用程序。
实验报告文档

done=TRUE;
}else if((code0.all&code1.all)!=0){
done=TRUE;
}else{
if(code0.all!=0){
x = x0; y = y0;
dx = x1 - x0; dy = y1 - y0;
d = dx - 2 * dy;
UpIncre=2*dx-2*dy;DownIncre=-2*dy;
while(x<=x1)
{
putpixel(x,y);
printf("x = %d , y = %d \n",x,y);
对剩余部分,把它作为新的线段看待,又从头开始考虑。两遍循环之后,就能确定该线段是部分截留下来,还是全部舍弃。
1、分区编码
延长裁剪边框将二维平面分成九个区域,每个区域各用一个四位二进制代码标识。各区代 码值如图中所示。
2、判别
根据C1和C2的具体值,可以有三种情况:
(1)C1=C2=0,表明两端点全在窗口内,因而整个线段也在窗内,应予保留。
(2)C1&C2≠0(两端点代码按位作逻辑乘不为0),即C1和C2至少有某一位同时为1,表明两端点必定处于某一边界的同一外侧,因而整个线段全在窗外,应予舍弃。
(3)不属于上面两种情况,均需要求交点。
3、求交点
假设算法按照:左、右、下、上边界的顺序进行求交处理,对每一个边界求完交点,并相关处理后,算法转向第2步,重新判断,如果需要接着进入下一边界的处理。
实验
类型
设计型
综合型
创新型
√
实
验
目
的
或
要
求
1.实验内容
《计算机图形学》上机实验指导1

KMUSTTeaching Records昆明理工大学《上机实验指导书》课程名称:计算机图形学所在系(部):国资院测绘系学年学期: 2012 — 2013 学年第 2 学期授课专业班级:地信101/土管101/测绘101 班级人数: 27/24/56 讲授教师:李向新教材名称:计算机图形学课程总学时: 64 ;总学分:理论学时: 38 ;实验(或实践)学时: 上机学时: 32 ;辅导(或答疑)学时: 系主任签章:第1部分计算机图形学上机实验大纲1.1 目的与任务计算机图形学上机是计算机图形学课程的组成部分之一,是掌握计算机图形学课程内容的一个重要实践环节。
通过上机实验,一方面可以让学生巩固课堂所学的计算机图形学基础理论,另一方面能让学生掌握基本的OpenGL的编程方法及技能,掌握使用OpenGL绘制基本图形,进行2D及3D维图形变换,生成曲线曲面及构建具有真实感的3D场景。
1.2 基本要求1. 了解OpenGL在计算机图形学中的应用基础知识。
2. 掌握基本的OpenGL的编程方法及技能。
3. 学会使用OpenGL绘制基本图形。
4. 学会使用OpenGL进行2D及3D维图形变换、生成曲线曲面及构建具有真实感的3D场景。
1.3 内容及学时安排上机1:glut工具包的安装及使用 2学时上机2:OpenGL编程练习 2学时上机3:OpenGL中基本几何图形的绘制 2学时上机4:二维图形变换编程练习 2学时上机5:交互式绘图技术编程练习 2学时上机6:三维图形变换编程练习 2学时上机7:OpenGL三维物体表示编程练习 2学时上机8:真实感图形的生成与处理上机 2学时合计 16学时1.4 教学参考书(1) 成思源等编著:计算机图形学,冶金工业出版社,2003.(2) (美)安杰尔(Edward Angel)著;李桂琼,张文祥译: OpenGL程序设计指南(第二版),北京:清华大学出版社,2005.(3) Edward Angel: Interactive Computer Graphics—A Top-Down Approach withOpenGL, Third Edition, Pearson Education, Inc., 2003.(4) F.S. Hill, JR:Computer Graphics Using OpenGL Second Edition, PearsonEducation, Inc., 2003.(5) James D. Foley et al.: Computer Graphics—Principles and Practice, SecondEdition in C, Pearson Education, Inc., 2002.(6) 朱家义:Visual C++程序设计,机械工业出版社,2003。
《计算机图形学》实验指导书

计算机图形学实验指导书袁科计算机技术实验中心目录实验一实现DDA、中点画线算法和Bresenham画线算法 (24)实验二实现Bezier曲线 (25)实验三实现B样条曲线 (26)实验四实现多边形填充的边界标志算法 (27)实验五实现裁剪多边形的Cohen-Sutherland算法 (28)实验六二维图形的基本几何变换 (30)实验七画图软件的编制 (31)实验一实现DDA、中点画线算法和Bresenham画线算法【实验目的】1、掌握直线的多种生成算法;2、掌握二维图形显示原理。
【实验环境】VC++6.0/ BC【实验性质及学时】验证性实验,2学时,必做实验【实验内容】利用任意的一个实验环境,编制源程序,分别实现直线的三种生成算法,即数字微分法(DDA)、中点画线法以及Bresenham画线算法。
【实验原理】1、数字微分法(Digital Differential Analyzer,DDA)算法思想:基于直线的微分方程来生成直线。
ε=1/max(|△x|,|△y|)max(|△x|,|△y|)=|△x|,即|k|≤1 的情况:max(|△x|,|△y|)=|△y|,此时|k|≥1:2、中点画线法算法思想:每次在最大位移方向上走一步,另一方向是否走步取决于误差项的判断。
3、Bresenham画线算法算法思想:其基本思想同中点算法一样,即每次在最大位移方向上走一步,而另一个方向是否走步取决于误差项的判断。
【实验要求】1.上交源程序;2.上交实验报告,实验报告内容如下:(1) 实验名称(2) 实验目的(3) 算法实现的设计方法及程序流程图(4) 程序结果分析【分析与思考】(1) 上述所阐述的三个算法,其基本算法只能适用于直线的斜率(|K|<=1) 的情形,如何将上述算法进行推广,使其能够处理任意斜率的直线?(2) 计算机显示屏幕的坐标圆心在哪里,与我们平时的习惯有什么差异,如何协调二者?实验二 实现Bezier 曲线【实验目的】1、掌握Bezier 曲线的定义;2、能编程实现N 次Bezier 曲线的绘制与显示。
大学计算机基础实验指导书(11版)

大学计算机基础实验指导书大学计算机基础课程组西北农林科技大学信息工程学院2011年9月前言大学计算机基础分为课堂讲授和上机实验两个环节。
通过上机学习,使学生养成良好的使用计算机习惯,掌握WINDOWS及其应用软件操作和应用方法;培养学生应用OFFICE系列软件操作及应用技能,使用多媒体软件解决实际问题的能力。
在课堂讲授过程中,虽然采用多媒体投影辅助教学,提高了教学直观性,但在实验教学中,学生因为缺少充分的准备,实验目标不明确,“走马观花”的现象普遍存在,这直接影响了整个课程教学质量的提高和后续计算机课程的学习。
本指导书在较全面总结教材内容基础上,把大学计算机基础实验教学中要求掌握的内容以案例的形式给出,学生只要按照指导书,遵照循序渐进规律,就能较系统地掌握基本概念、理论和操作。
由于学时限制,部分内容需要学生自己抽时间在课余完成。
每个实验完成后都需要写出实验总结。
总结中应反映出学生在实验前的实验准备,实验过程中出现的各种问题及解决方法。
本书是在院领导的亲切关怀下,由课组全体成员多次讨论才最后定下基本框架的。
其中实验一由陈勇老师编写,实验二由杨沛老师编写,实验三由杨龙、田彩丽两位老师共同完成,实验四由张晶老师编写,实验五由李梅老师编写,实验六由朱姗娜老师编写,朱俊平老师独立完成了实验七和实验八全部内容的编写,实验九由杨晓辉老师编写,全书由陈勇、孙健敏、杨沛老师统稿,李书琴、张阳教授做了最后审定。
本书每个实验后都要求学生完成实验总结,学生应该详细总结实验中遇到了哪些问题,是如何解决的,还有哪些问题没有解决等内容。
由于时间仓促,本书在内容及形式上做了较大的改动,不足之处请各位老师和同学谅解。
大学计算机基础课程组2011年9月1实验一指法练习一、实验目的熟悉实验环境,认识计算机,培养良好使用计算机的习惯,掌握正确录入方法。
二、实验任务实现盲打,英文指法达每分钟80-100CPM(每分钟字符数)。
三、实验内容及方法利用机房的“指法练习”进行指法训练10小时以上。
《计算机图形学》 课程实验指导(1)

《计算机图形学》课程实验指导一.实验总体方案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 的基本命令都做到了硬件无关,甚至是平台无关;3) 高性能的图形渲染:OpenGL是一个工业标准,它的技术紧跟时代,现今各个显卡厂家无一不对OpenGL提供强力支持,激烈的竞争中使得OpenGL性能一直领先。
总之,OpenGL是一个非常优秀的图形软件接口。
OpenGL官方网站(英文)下面将对Windows下的OpenGL编程进行简单介绍。
《计算机图形学》课内实验指导书

“计算机图形学”课内实验指导书杨新宇西安交通大学计算机科学与技术系课程基本情况实验学时:8适用专业:计算机专业本科生先修课程:数据结构,C语言程序设计开课学院:电子与信息工程学院开课学期:第七学期参考书:·DONALD HEARN & M.PAULINE BAKER著,蔡士杰、吴春鎔、孙正兴等译,《计算机图形学(第二版)》,PRENTICE HALL&电子工业出版社,2002年·David F. Rogers主编,《Procedural Elements for Computer Graphics》,机械工业出版社,2002年课程简介本实验是对《计算机图形学》课的课内实践,完成基本几何图形(线、圆、椭圆)的绘制。
教学基本要求与成绩的考核与评定办法一、实验课教学基本要求1.根据题目要求的功能,独立完成,培养自己独立思考、独立解决问题的能力;2.同学之间可以讨论研究问题,互相交流经验体会,但不可照抄;3.记录保存好自己的设计资料数据,调试完成后要写出详细设计报告;4.任务完成后老师要逐个检查验收,并结合实际情况提问答辩。
二、实验成绩的考核与评定办法在实验过程中考察动手能力,依据提交的设计报告、结合验收的实际情况综合打分。
实验项目名称:直线的DDA算法实验目的:1.掌握直线的DDA算法的编程实现。
实验环境:Windows操作系统、VC编程环境。
实验要求:以绘图区域中心为(0,0)点。
要求能够输入任意两个端点的坐标。
实验内容提要:参考《计算机图形学基础》课程中的相关算法流程。
实验类型:设计性。
实验项目名称:直线的Bresenham画线算法实验目的:1.掌握直线的Bresenham算法的编程实现。
实验环境:Windows操作系统、VC编程环境。
实验要求:以绘图区域中心为(0,0)点。
要求能够输入任意两个端点的坐标。
实验内容提要:参考《计算机图形学基础》课程中的相关算法流程。
计算机图形学基础实验指导书

计算机图形学基础实验指导书目录实验一直线的生成 ............................................................... -..2.-实验二圆弧及椭圆弧的生成........................................................ -..3 -实验三多边形的区域填充 ......................................................... - (4)-实验四二维几何变换 ............................................................. -..5.-实验五裁剪算法 ................................................................. -..6.-实验六三维图形变换 ............................................................. -..7.-实验七BEZIER 曲线生成......................................................... -..8.-实验八交互式绘图技术实现........................................................ -..10-实验一直线的生成一、实验目的掌握几种直线生成算法的比较,特别是Bresenham 直线生成算法二、实验环境实验设备:计算机实验使用的语言: C 或Visual C++ 、OpenGL三、实验内容用不同的生成算法在屏幕上绘制出直线的图形,对不同的算法可设置不同的线形或颜色表示区别。
四、实验步骤直线Bresenham 生成算法思想如下1)画点(x i, y i), dx=x2-x i, dy=y2-y i,计算误差初值P i=2dy-dx , i=1;2)求直线下一点位置x i+i=x i+i 如果P i>0,贝U y i+i=y i+i,否则y i+i=y i;3)画点(x i+i ,y i+i );4)求下一个误差P i+i 点,如果P i>0,贝U P i+i=P i+2dy-2dx,否则P i+i=P i+2dy;i=i+i ,如果i<dx+i 则转步骤2,否则结束操作。
计算机图形学实验指导书

计算机图形学实验指导书【】第一章计算机图形学的软件开发环境计算机图形学中的程序都是用C语言编写的,Turbo C和Visual C++常见的两种C语言开发环境,Turbo C是在Dos环境下开发,而Visual C++是在Windows环境下开发。
1.1、在Turbo C环境下开发应用程序一些高级语言都扩充了图形功能,这使得用户可以不需配备专门的图形软件,就能在计算机上进行图形工作。
Turbo C 2.0包含有460多个库函数,其中有 70 多个图形函数,这些函数包括了绘图、处理图象及图素、屏幕及视图区控制、颜色及线型设置、状态查询和出错处理等,这使得 TurboC具有很强的图形功能。
1.图形显示器的工作方式IBM PC 机的显示器可以在两种基本视频方式下工作:一种是文本方式;另一种是图形方式。
( 1 )文本方式在文本方式下,屏幕上可以显示的最小单位是字符,字符在屏幕上以行、列排列,即我们通常见到的情况。
文本方式不同,屏幕上所显示字符的行数和列数也不一样,颜色也会有所区别。
Turbo C 支持 6 种不同的文本显示方式。
( 2 )图形方式在图形方式下,屏幕上可以控制的最小单元称作像素 ( pixel ) ,它是组成图形的基本元素,一般叫作“点”。
通常把屏幕上所包含像素的个数叫做分辨率。
分辨率越高,显示的图形越细致、质量越好,这是显而易见的。
在图形方式下,屏幕上每个像素的显示位置用点坐标系来描述。
在该坐标系中,屏幕左上角为坐标系的原点,坐标值为 ( 0 , 0 ) ; 水平方向为X轴,自左向右;垂直方向为Y轴,自上向下。
见下图。
点坐标系中坐标值的范围决定于所用显示器的分辨率。
分辨率不同,水平方向上和垂直方向上的点数也不同,即其 maxx 、maxy 的数值不同。
就我们常用的 VGA 显示器来说,它通常所用的分辨率为6405480 ,即它的 maxx 值为 639 , maxy 的值为479。
2. 图形函数及其用法Turbo C 的图形函数均在一个头文件“ graphics.h” 中定义。
图形学实验指导书

第一部分绪论本指导书是根据《计算机图形学》课程实验教学大纲编写的,适用于计算机科学与技术的相关专业。
一、本课程实验的作用与任务计算机图形学是研究利用计算机来处理图形的原理、方法和技术的学科。
图形的处理包括了图形生成、图形描述、图形存储、图形变换、图形绘制、图形输出等等。
计算机图形学与计算机图形处理技术是许多重要应用领域的基础,图形技术已经交叉渗透到各个应用学科中。
通过理论学习,再通过相应的实践操作,可以让学生掌握计算机图形技术的知识,培养计算机图形处理的能力,熟悉计算机图形应用软件和系统的设计、使用和组织。
本实验课程的任务是让学生学会如何把书本上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书本上的知识变“活”,起到深化理解和灵活掌握教学内容的目的。
二、本课程实验的基础知识本课程的主要讲授了计算机图形学的概念,研究内容和应用领域;图形(图像)信息的计算机处理;图形系统的组成和图形设备;图形基元及其属性的生成、操作和实现;图形操作与处理技术;二维及三维图形的表示、变换、窗口-视区变换等操作;图形的窗口与视区,图形的填充与剪裁,图段与图层处理;隐藏线、面消隐技术,计算机图形标准以及图形数据结构和图形程序设计等。
三、本课程实验教学项目及其教学要求第二部分基本实验指导实验一Window 图形编程基础一、实验目的1、熟练使用实验主要开发平台VC6.0;2、掌握如何在编译平台下编辑、编译、连接和运行一个简单的Windows 图形应用程序;3、掌握Window 图形编程的基本方法;4、学会使用基本绘图函数和Window GDI 对象;二、实验原理在程序中,用户可以自己设定绘制图形的形状和画笔的颜色,需要有变量(m_UserColor)记录用户选择的颜色;同理,需要有变量(m_UserShape)记录用户选择的图形。
在基于Document-View 的程序中,应用程序几乎所有的绘制工作都是在视图类的OnDraw(CDC*pDC)函数中完成。
课件计算机图形学图形学实验指导书.docx

《计算机图形学》实验指导书首都师范大学信息工程学院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等等。
不同的模式显示的分辨率不同。
支持显示模式需要三个条件:显示器,显示卡,和驱动程序。
下表列出Turbo C支持的图形模式。
1.2C语言图形初始化在计算机上绘制和显示图形,必须工作在图形方式下。
使用Turbo C绘制图形的基本步骤为:*设置图形方式*绘制图形*关闭图形方式图形方式初始化是通过函数initgraph来完成的,其功能是通过装入一个图形驱动程序来初始化图形系统,并将系统设置为图形方式。
计算机图形学基础实验指导书

《计算机图形学基础》实验指导书课程名称:计算机图形学基础英文名称:Computer Graphics课程性质:必修课程编号:适应专业:计算机科学与技术;软件工程学时学分:总学时48,实验学时102,总学分2编写人:王创存一、实验课程任务与要求1. 目的与任务:计算机图形学实验教学是为了将学生的计算机操作能力、分析能力、工程设计能力与应用实践结合起来,引导学生由浅入深地掌握计算机图形学理论与算法,掌握交互构图能力,具备工程应用的图形学基础。
本实验教学主要内容是要求学生用Visual Basic编程实现各种图形的绘制,强化学生的程序设计能力和程序调试能力,使学生巩固所学各种图形的生成算法的理论知识。
实践教学共包括十项内容。
2. 实验基本要求:(以软件设计为主要表现形式)上机前应准备好实验的程序设计算法描述与关键分析内容;准备好程序测试数据和设备操作步骤,上机调试、运行;完成每个实验后进行数据与程序对比分析,给出运行结果。
二、实验内容与学时安排实验一、图形输入/输出设备的操作使用及简单图形的输出(2学时)要求:(1)掌握图形设备的操作过程;测试图形设备的分辨率、性能;(2)图形软件包与外部设备的连接参数配置;(3)利用图形软件包绘制简单图形并在设备上输出;(4)设计菜单,实现人机交互方式控制图形设备进行简单操作实验二、编程环境及图形绘制基础练习(2学时)题目:绘制分形树基本要求:)数据输入项为:树干的起点坐标,树干长度,树枝倾斜角度,树枝层数,最短树枝;)结果直接输出在窗体中。
附加要求:(1)通过用户输入可改变线型(实线、虚线与点划线)。
(2)通过用户输入可改变线宽。
实验三、直线的绘制(2学时)题目:用逐点比较法或中点Bresenham法实现直线的绘制基本要求:)数据输入项为:直线的起点与终点坐标;)直线与圆输出在PictureBox控件中;)保存图形绘制结果,将该实验加入到菜单中去。
实验四、圆的绘制(2学时)题目:用逐点比较法或中点Bresenham法实现圆的绘制基本要求:)数据输入项为:圆心坐标与半径;)直线与圆输出在PictureBox控件中;)保存图形绘制结果,将该实验加入到菜单中去。
计算机图形学试验指导书[1]
![计算机图形学试验指导书[1]](https://img.taocdn.com/s3/m/fb2e646d67ec102de2bd89cf.png)
由于许多在计算机界具有领导地位的计算机公司纷纷采用 OpenGL 作为三维图形应用程序设计界面,OpenGL 应用程序具有广 泛的移植性。因此,OpenGL 已成为目前的三维图形开发标准,是从事 三维图形开发工作的技术人员所必须掌握的开发工具。
OpenGL 作为一个与硬件独立的图形接口,它不提供与硬件密切 相关的设备操作函数,同时,它也不提供描述类似于飞机、汽车、分子 形状等复杂形体的图形操作函数。用户必须从点、线、面等最基本的 图形单元开始构造自己的三维模型。
在 OpenGL 中进行主要的图形操作直至在计算机屏幕上渲染绘 制出三维图形景观的基本步骤为:
(1) 根据基本图形单元建立景物模型,并且对所建立的 模型进行数学描述(OpenGL 中把点、线、多边形、图像和位 图都作为基本图形单元);
(2) 把景物模型放在三维空间中的合适的位置,并且设 置视点(viewpoint)以观察所感兴趣的景观;
(3) 计算模型中所有物体的色彩,其中的色彩根据应用 要求来确定,同时确定光照条件、纹理粘贴方式等;
4
(4) 把景物模型的数学描述及其色彩信息转换至计算机 屏幕上的像素,这个过程也就是光栅化(rasterization)。 在这些步骤的执行过程中,OpenGL 可能执行其他的一些操作,例 如自动消隐处理等。另外,景物光栅化之后被送入帧缓冲器之前还可 以根据需要对像素数据进行操作。 OpenGL 能够对整个三维模型进行渲染着色,从而绘制出与客观 世界十分类似的三维景象。另外 OpenGL 还可以进行三维交互、动作 模拟等。具体的功能主要有以下这些内容。 (1)模型绘制 OpenGL 能够绘制点、线和多边形。应用这些基本的形体,可以构 造出几乎所有的三维模型。OpenGL 通常用模型的多边形的顶点来描 述三维模型。 (2)模型观察 在建立了三维景物模型后,就需要用 OpenGL 描述如何观察所建 立的三维模型。观察三维模型是通过一系列的坐标变换进行的。模型 的坐标变换使观察者能够在视点位置观察与视点相适应的三维模型 景观。在整个三维模型的观察过程中,投影变换的类型决定观察三维 模型的观察方式,不同的投影变换得到的三维模型的景象也是不同的。 最后的视窗变换则对模型的景象进行裁剪缩放,即决定整个三维模型 在屏幕上的图像。
计算机图形学课程实验指导书和作业

《计算机图形学》实验指导书、作业学期:2011-2012(2)班级:测绘工程10-1班姓名:汪帅学号:20100202测绘工程学院目录实验一直线段生成算法实现 (1)实验二圆生成算法的实现 (5)实验三二维图形几何变换的实现 (8)实验四直线段裁剪算法的实现 (13)实验报告1 (19)实验报告2 (26)实验报告3 (30)实验报告4 (37)实验一 直线段生成算法实现一、实验目的熟练掌握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<1,且已确定点亮象素点P (Xi ,Yi ),则下一个与直线最接近的像素只能是P1点或P2点。
设M 为中点,Q 为交点,现需确定下一个点亮的象素。
当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 点在直线下方欲判断M 点是在Q 点上方还是在Q 点下方,只需把M 代入F(x,y),并检查它的符号。
《计算机图形学》实验指导书

《计算机图形学》实验指导书实验一:二维基本图元的生成1、实验目的:参照Windows的画笔或Office中的绘图模块设计学会自己编程实现二维基本图元的生成。
实现二维基本图元直线段生成的DDA算法,中点算法、Bresenham算法。
2、实验内容:用数值微分DDA算法、中点算法、Bresenham算法扫描转换直线段(20,10)--(30,18)3、实验要求:1)写出扫描转换的结果2)写出每一步递推过程的x,y坐标及判别式d的值3)图示计算结果4)考虑实现环境、编程语言和设计界面风格5)用菜单或按钮调用方式实现每个基本算法6)考虑界面的美观,扩展,人机交互等因素7)调试程序,验证算法的正确性8)提交实验报告4、参考:教材,开发平台的联机帮助。
演示参考:DDA算法:斜率k=(5-1)/(5-0)=0.8x y y+0.5 int(y+0.5)0 1 1.5 11 1.8 2.3 22 2.6 3.1 33 3.4 3.9 34 4.2 4.7 45 5.0 5.5 5中点算法:a=y0-y1=-4;b=x1-x0=5; d0=2a+b=-3; d1=2a=-8; d2=2(a + b) =2;x y d 说明0 1 -31 2 -1; d<0, d+d22 3 1; d<0, d+d23 3 -7; d>0, d+d14 4 -5; d<0, d+d25 5 -3; d<0, d+d2 结果图示:实验二:写一个画带线宽的程序。
1、实验目的:参照Windows的画笔或Office中的绘图模块设计学会自己编程实现二维基本图元的生成2、实验内容:实现对线宽的属性的控制3、实验步骤:1)考虑实现环境、编程语言和设计界面风格2)调用菜单或按钮调用方式实现每个基本算法3)考虑界面的美观,扩展,人机交互等因素4)键盘输入直线的两个端点坐标及线宽的倍数,调用算法实现5)调试程序,验证算法的正确性6)提交实验报告4、参考:教材,开发平台的联机帮助。
计算机图形学实验指导书

计算机图形学实验指导书王飞北京邮电大学机电工程实验教学中心2007.9实验一 直线的Bresenham算法一、实验目的深入理解直线的Bresenham算法,学习图形的编程方法二、实验设备微机三、实验内容实现直线的Bresenham算法并画出一个几何图形四、实验步骤1.安装VB或VC软件2.了解软件的使用3.键入程序代码4.调试五、实验报告要求1.推出直线的Bresenham算法2.画出程序框图3.写出程序代码4.写出程序调试时出现的问题和解决办法实验二 图形的二维变换一、实验目的深入理解图形的各种基本变换和组合变换及其实现方法,学习图形的编程方法。
二、实验设备微机三、实验内容参照图1或图2自己设计一个图案并上机编程实现图1 图2四、实验步骤1.了解编程软件的使用方法2.键入程序代码3.调试程序五、实验报告要求1.导出变换矩阵2.写出实现思路并画出程序框图3.给出程序代码4.写出程序调试时出现的问题和解决办法实验三 投影变换一、实验目的深入理解各种投影变换的方法,特别是透视变换的方法。
学习图形的编程方法。
二、实验设备微机三、实验内容实现组合体的三视图和轴测投影变换或透视投影变换四、实验步骤1.继续了解编程软件的使用方法2.键入程序代码3.调试程序五、实验报告要求1.推出各种变换矩阵算法2.画出程序框图3.给出程序代码4.写出程序调试时出现的问题和解决办法实验四 自由型曲线(一)一、实验目的深入理解构造弗格森曲线和参数三次样条曲线的方法,学习图形的编程方法。
二、实验设备微机三、实验内容参考图3或图4自己设计一个外形,用弗格森曲线或参数三次样条曲线构造并上机实现。
四、实验步骤1.继续了解编程软件的使用方法2.键入程序代码3.调试程序五、实验报告要求1.给出构造弗格森曲线和参数三次样条曲线的方法2.画出程序框图3.给出出程序代码4.写出程序调试时出现的问题和解决办法实验五 自由型曲线(二)一、实验目的深入理解贝齐尔曲线和B样条曲线方法,学习图形的编程方法。
计算机图形学实验二

计算机图形学实验指导书信息科学技术学院二○一三年十一月计算机图形学实验报告实验名称直线、圆弧及曲线的生成算法评分实验日期2013 年11 月 6 日指导教师姓名专业班级11地信学号2011083027一、实验目的1、几种直线生成算法的比较,特别掌握用Bresenham直线生成算法。
2、掌握用像素点法直接生成其它曲线的方法。
二、实验要求1、用不同的生成算法在屏幕上绘制出直线的图形,对不同的算法可设置不同的线形或颜色表示区别。
2、用Bresenham生成算法在屏幕上绘制出圆弧的图形,用动画的方式表演图形的生成。
三、关键算法及实现原理1、有关直线生成算法有:DDA(数值微分)直线算法、逐点比较法、直线Bresenham 生成算法。
直线Bresenham生成算法思想如下(第一象限,且斜率k<1的情况图2-1 a 中的1a):1)画点(x1,y1),dx=x2-x1,dy=y2-y1,计算误差初值P1=2dy-dx,i=1;2)求直线下一点位置x i+1=x i+1 如果P i>0,则y i+1=y i+1,否则y i+1=y i;3)画点(x i+1,y i+1);4)求下一个误差P i+1点,如果P i>0,则P i+1=P i+2dy-2dx,否则P i+1=P i+2dy;5)i=i+1,如果i<dx+1则转步骤2,否则结束操作。
Bresenham生成算法的优点如下;1)不必计算直线的斜率,因此不做除法。
2)不用浮点数,只用整数。
3)只做整数加减运算和乘2运算,而乘2运算可以用移位操作实现。
Bresenham算法的速度很快,并适于用硬件实现。
对于图2-1 a中的2a,只需将x i+1=x i+1改为x i+1=x i-1。
对于图2-1 a中的1b,斜率k>1的情况,可交换变量x和y,y每次长1个单位。
对P i进行判断,x i+1=x i或x i+1=x i+1。
2、有关圆弧生成算法有:逐点比较法、DDA(数值微分)直线算法、圆的Bresenham生成算法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
直线 Bresenham 算法分析 设直线从起点(x1, y1)到终点(x2, y2)。直线可表示为: 方程 y=mx+b,其中 b=y1-m*x1 ,m=(y2-y1)/(x2-x1)=dy/dx; 此处的讨论先将直线方向限于 1a 象限,在这种情况 下,当直线光栅化时,x 每次都增加 1 个单元, 即 xi+1 = xi + 1 而 y 的相应增加值应当小于 1。 为了光栅化,yi+1 只可能选择右图中两种位置之一。 yi+1 的位置选择 yi+1 =yi 或者 yi+1=yi+1,选择的原则是看精确 值 y 与 yi 及 yi+1 的距离 d1 及 d2 的大小而定。计算公式为
1、通过实验,进一步理解和掌握 DDA 和中点算法,Bresenham 算 法;
2、掌握 DDA 和中点算法,中点算法,Bresenham 算法算法生成直 线段的基本过程。掌握中点画圆的算法。
3
3、通过编程,会在 VC++环境下完成用 DDA、中点算法实现直线 段的绘制和中点算法实现圆的绘制。 实验属性 该实验为验证性实验。 实验学时 2 学时,必做实验。 实验内容
4
y/△x 当 △x>△y 时,让 x 从 x1 到 x2 变化,每步递增 1,那么,x 的变
化可以表示为 xi+1=xi+1,y 的变化可以表示为 yi+1=yi+k 用上式可求得图中直线 P1P2 和 y 向网格线的交点,但显示时要用舍入 找到最靠近交点处的象素点耒表示。 当 △x<△y 时,让 y 递增 1,x 作 相应变化。
1ቤተ መጻሕፍቲ ባይዱ
二、实验环境
实验环境要求: 硬件:普通 PC386 以上微机; 软件:操作系统:Windows 98/2000;
开发语言: Turbo C 、Visual C++ 6.0、OpenGl,或其它学生掌握的高级 语言。
三、实验项目 为加强学生对计算机图形学理论知识的进一步理解,本实验设计了五 次实验,实验内容力求理论性和实用性的紧密结合。实验一、二、三、四为基 础性实验,通过编程实现图形生成及处理变换的各种基本算法,从而使学生 进一步理解和牢固掌握图形学中重要的理论知识,同时使用当前流行的图 形和游戏开发工具OPENGL,实现相应的功能,让学生理解图形理论的实际 应用;实验五为应用性实验,采用OPENGL对规则实体和不规则实体进行建
培养学生的算法设计能力和编程能力, 目录
2
1
一、实验目的和要求 《计算机图形学》是计算机专业本科生的一门理论性、技术性、应用性较 强的专业课程。实验目的是:通过上机实践,让学生更好地了解和掌握计算 机图形学的基本图形生成的各种算法、对各种算法加以比较,同时在实践中 发现问题、解决问题,给学生以新的启迪,培养学生的创新能力和实际动手 能力。 实验要求: 1、采用 VC++程序开发环境和 OpenGL 图形库进行课程实验,通过实验 掌握基本图元-直线和圆弧生成算法;掌握曲线和曲面的基本绘制方法;掌握 图形变换算法;掌握规则和不规则实体的建模技术;掌握真实感绘图技术;能 够综合利用上述技术,进行一定复杂虚拟场景的设计。为后续的课程奠定良 好的基础。 2、上机实验前,要求完成实验报告的实验目的、理论基础、算法设计及 源程序初稿。实验程序调试过程中,可以互相讨论、检查程序中存在的问题。 实验完成之后,应思考算法与源程序的评价与改进及对结果的影响等分析, 提交实验源程序和实验报告。并要求用正规的实验报告纸和封面装订整齐, 按时上交。
2
模。该实验旨在提高学生的综合动手能力和创新能力,为以后从事图形、游 戏及软件开发工作打下良好的基础。
实验一:二维基本图形生成的算法实现 实验二:图形的裁剪 实验三:几何图形变换实验 实验四:BEZIER曲线和B样条曲线的绘制 实验五:采用OPENGL进行实体建模
实验一、二维基本图形生成的算法实现 实验目的
1、用 DDA 算法或中点(Besenham)算法实现直线段的绘制。 2、 用中点(Besenham)算法实现椭圆或圆的绘制。 实验步骤
1、 算法、原理清晰,有详细的设计步骤; 2、 依据算法、步骤或程序流程图,用 VC++语言编写源程序; 3、 编辑源程序并进行调试; 4、 进行运行测试,并结合情况进行调整; 5、 对运行结果进行保存与分析; 6、 打印源程序或把源程序以文件的形式提交; 7、 按格式书写实验报告。 原理分析 DDA 算法分析 假设 直线的起点坐标为 P1 (x1,y1),终点坐标为 P2 (x2,y2), x 方向的 增量为 △x=x2-x1 ;y 方向上增量为 △y=y2-y1,直线的斜率为 k=△
《计算机图形学》 实验指导书
主讲:宋春花 教材:计算机图形学
适应专业:软件工程 总学时:40 学时 实验学时:10
2011-5-20
前言 随着计算机科学与技术的迅猛发展,特别是大规模集成电路和超大规 模集成电路技术的飞速发展,计算机已经成为一种高速、费用低的生成图形 的有效工具。计算机图形学作为利用计算机生成图形的技术,已经越来越广 泛地在各个领域得到应用。随着计算机图形学应用领域的拓宽和应用水平 的提高,人们越来越重视对该项技术的研究和利用。当今,计算机图形学已 经成为了计算机科学技术领域的一个重要研究方向,并被广泛的应用于科 学计算、工程设计、医药、工业、艺术、娱乐业、广告业、教育与培训、商业和 政府部门等。 鉴于计算机图形学的重要性和应用的广泛性,计算机科学与技术专业 将其设置为专业必选的选修课。它主要是研究用计算机及其图形设备来输 入、表示、变换、运算和输出图形的原理、算法及系统。通过对本课程的学习, 使学生对计算机图形学有一个完整的了解,并为进行计算机图形学应用和 研究打下扎实基础。 由于本课程实践性较强,计划中安排 10 学时实验。通过实验,使学生更 加深入的理解计算机图形系统的工作机理和基本图形生成和处理算法。 在实验过程中,能够培养学生的自学能力、团队协作能力、解决问题能 力、软件开发能力等多种能力。
1
培养学生的算法设计能力和编程能力,能够应用计算机来解决在科学 研究、工程设计与制造中有关图形处理的能力;在图形学理论与算法方面的 科研能力;应用高级绘图软件及对其进行二次开发的能力,并具有开发大型 通用或专用绘图软件的能力。为学生毕业设计、和毕业后从事计算机绘图、 计算机辅助设计、图形生成、图像处理等打下基础。