什么是计算机图形学

什么是计算机图形学
什么是计算机图形学

什么是计算机图形学?

计算机图形学是研究通过计算机将数据转换为图形,并在专门显示设备上显示的原理、方法和技术的学科

计算几何:研究几何模型和数据处理的学

科,探讨几何形体的计算机表示、分析和

综合

计算机图形学研究内容:建模,绘制,动画

图形系统的基本功能

1.计算功能

元素生成、坐标变换、求交、剪裁计算。

2.存储功能

存储数据:形体的集合数据、形体间相互关系、数据的实时检索、保存图形的编辑等信息。

3.输入功能

输入信息: 数据、图形信息、图象信息等输入。

命令关键字、操作信息。

4.输出功能

输出信息: 图形信息、文件信息;静态图形、动态图形。

5.交互功能

人─机交互:拾取对象、输入参数;接受命令、数据等。

显示器种类

阴极射线管、随机扫描、存储管式、光栅扫描、等离子和液晶显

示器

从以下几个方面介绍图形显示设备:

图形硬件显示原理

CRT;CRT是利用电子枪发射电子束来产生图像,容易受电磁波干扰液晶显示器;液晶显示器的工作原理是利用液晶的物理特性,在通电时导通,使液晶排列变得有秩序,使光线容易通过;不通电时,排列则变得混乱,阻止光线通过

未来显示器

光栅显示系统的组成

图形显示方式:随机扫描存储管式扫描光栅扫描

图形显示质量与一帧的画线数量有关:当一帧线条太多,无法维持30~60帧/秒刷新频率,就会出现满屏闪烁

光栅扫描显示器的常用概念:行频、帧频(图像刷新率)

水平扫描频率为行频。垂直扫描频率为帧频。

隔行扫描、逐行扫描

隔行扫描方式是先扫偶数行扫描线,再扫奇数行扫描线。像素

屏幕被扫描线分成n 行,每行有m 个点,每个点为一个象素。整个屏幕有m ×n 个象素。具有灰度和颜色信息

分辨率

指CRT单位长度上能分辨出的最大光点(象素)数。分为水平分辨率和垂直分辨率。

点距:相邻象素点之间的距离指标相关。

带宽:(水平像素数*垂直像数数*帧频)

显示速度

指显示字符、图形特别是动态图像的速度,与显示器的分辨率及扫描频率有关。可用最大带宽来表示。

图像刷新

刷新是指以每秒30帧以上的频率反复扫描不断地显示每一帧图像。图像的刷新频率等于帧频,用每秒刷新的帧数表示。目前刷新频率标准为每秒50-120帧。

色彩与亮度等级

亮度等级又称灰度,主要指单色显示器的亮度变化。色彩包括可选择显示器颜色的数目以及一帧画面可同时显示的颜色数,与荧光屏的质量有关,并受显示存储器VRAM容量的影响。

总结:分辨率M*N、颜色个数K与帧缓存大小V的关系

举例:

分辨率是1024×1024的显示器若要显示8种颜色,需要帧缓存大小至少为多少KB? 如果是16M种颜色呢?

1024*1024*log28 (Bit)

1024*1024*log28/8/1024 (KByte)

图形软件分类:

通用编程软件包:GL、OpenGL、VRML、DirectX、Java2D和Java3D

图形系统标准:图形标准:图形系统及其相关应用系统中各界面之间进行数据传送和通信的接口标准,及供图形应用程序调用的子程序功能及其格式标准

前者: 数据及文件格式标准

后者: 子程序界面标准

软件标准目标:可移植性

(方便将为一个硬件系统设计的程序移植到另一个系统)

总结:图形系统标准分类:面向图形设备的接口标准:

计算机图形元文件(CGM),(CRT,Mouse,…)

计算机图形接口(CGI).设备驱动程序

面向应用软件的标准:

三维图形核心系统GKS(Graphical Kernel System)

程序员层次交互式图形系统(PHIGS)

OpenGL:事实上的图形标准

面向图形应用系统中工程和产品数据模型及其文件格式:

基本图形转换规范(IGES)

产品数据转换规范(STEP)

直线的生成算法:画一条从(x1, y1)到(x2, y2)的直线,实质上是一个发现最佳逼近直线的像素序列,并填入色彩数据的过程。这个过程也称为直线光栅化。

直线DDA算法:

点阵通常有两种情况:内点表示边界表示填色算法分类扫描线填色种子填色

字符:点阵式字 矢量式字

反走样

用离散量表示连续量引起的失真现象称之为走样

光栅图形的走样现象:阶梯状边界;图形细节失真;狭小图形遗失:动画序列中时隐时现,产生闪烁。

反走样概念及方法

用于减少或消除走样现象的技术称为反走样

反走样方法:提高分辨率简单区域取样加权区域取样

提高分辨率方法简单,但代价非常大,而且它也只能减轻而不能消除锯齿问题

简单区域取样缺点:象素的亮度与相交区域的面积成正比,而与相交区域落在象素内的位置无关,这仍然会导致锯齿效应。直线条上沿理想直线方向的相邻两个象素有时会有较大的灰度差。

加权区域取样特点:接近理想直线的像素将被分配更多的灰度值。相邻的两个像素的滤波器相交,有利于缩小直线条上相邻像素的灰度差。

区域填充算法:边界填充和种子填充算法

区域表示方法:内点表示边界表示

曲面造型:研究在计算机内如何描述和表示一张曲面并对其控制。实体造型:研究在计算机内如何秒速、定义及表示一个三维物体。实体造型基础:1.点2.边3.环4.面5.体

?有效实体:符合正则形体的实体。简称实体

欧拉公式:V:顶点数,E:边数,F:表面数V-E+F=2

三维实体的表示方法:边界表示—多边形网格表示构造实体几何表示空间细分表示建模路线

灭点:不平行于投影平面的平行线,经过透视投影之后收敛于一点,称为灭点(投影变换)

消隐依据: 三维坐标消隐结果: 二维坐标以视点为标准将对象按空间位置排序

消隐解决方案:

先三维排序,再绘制二维→画家算法

二维绘制,同时依据三维判定可见性→Z-Buffer算法

Z-Buffer算法

优点:1)简单稳定,利于硬件实现2)不需要整个场景的几何数据缺点: 1)需要一个额外的Z缓冲器2)在每个多边形占据的每个像素处都要计算深度值,计算量大

影响光照效果:视点, 物体, 光源

整体光照明模型

简单光照明模型中,我们假定所考虑的物体表面是不透明的,实际上并非所有的物体都是不透明的,例如玻璃、花瓶、车窗等。

简单光照模型不考虑周围环境对当前景物表面的光照明影响,忽略了光在环境景物之间的传递,很难表现自然界复杂场景的高质量真实感图形。为了增加图形的真实感,必须考虑环境的漫射、镜面反射和规则投射对景物表面产生的整体照明效果。

计算机图形学试题附答案完整版

名词解释 将图形描述转换成用像素矩阵表示的过程称为扫描转换。 1.图形 2.像素图 3.参数图 4.扫描线 5.构造实体几何表示法 6.投影 7.参数向量方程 8.自由曲线 9.曲线拟合 10.曲线插值 11.区域填充 12.扫描转换 三、填空 1.图形软件的建立方法包括提供图形程序包、和采用专用高级语言。 2.直线的属性包括线型、和颜色。 3.颜色通常用红、绿和蓝三原色的含量来表示。对于不具有彩色功能的显示系统,颜色显示为。 4.平面图形在内存中有两种表示方法,即和矢量表示法。 5.字符作为图形有和矢量字符之分。 6.区域的表示有和边界表示两种形式。 7.区域的内点表示法枚举区域内的所有像素,通过来实现内点表示。 8.区域的边界表示法枚举区域边界上的所有像素,通过给赋予同一属性值来实现边界表示。 9.区域填充有和扫描转换填充。 10.区域填充属性包括填充式样、和填充图案。 11.对于图形,通常是以点变换为基础,把图形的一系列顶点作几何变换后,

连接新的顶点序列即可产生新的变换后的图形。 12.裁剪的基本目的是判断图形元素是否部分或全部落在之内。 13.字符裁剪方法包括、单个字符裁剪和字符串裁剪。 14.图形变换是指将图形的几何信息经过产生新的图形。 15.从平面上点的齐次坐标,经齐次坐标变换,最后转换为平面上点的坐标,这一变换过程称为。 16.实体的表面具有、有界性、非自交性和闭合性。 17.集合的内点是集合中的点,在该点的内的所有点都是集合中的元素。 18.空间一点的任意邻域内既有集合中的点,又有集合外的点,则称该点为集合的。 19.内点组成的集合称为集合的。 20.边界点组成的集合称为集合的。 21.任意一个实体可以表示为的并集。 22.集合与它的边界的并集称集合的。 23.取集合的内部,再取内部的闭包,所得的集合称为原集合的。 24.如果曲面上任意一点都存在一个充分小的邻域,该邻域与平面上的(开)圆盘同构,即邻域与圆盘之间存在连续的1-1映射,则称该曲面为。 25.对于一个占据有限空间的正则(点)集,如果其表面是,则该正则集为一个实体(有效物体)。 26.通过实体的边界来表示一个实体的方法称为。 27.表面由平面多边形构成的空间三维体称为。 28.扫描表示法的两个关键要素是和扫描轨迹。 29.标量:一个标量表示。 30.向量:一个向量是由若干个标量组成的,其中每个标量称为向量的一个分量。 四、简答题 1. 什么是图像的分辨率?

计算机图形学实验一

实验一二维基本图元的生成与填充 实验目的 1.了解并掌握二维基本图元的生成算法与填充算法。 2.实现直线生成的DDA算法、中点算法和Bresenham算法。 3.实现圆和椭圆生成的DDA和中点算法, 对几种算法的优缺点有感性认识。 二.实验内容和要求 1.选择自己熟悉的任何编程语言, 建议使用VC++。 2.创建良好的用户界面,包括菜单,参数输入区域和图形显示区域。 3.实现生成直线的DDA算法、中点算法和Bresenham算法。 4.实现圆弧生成的中点算法。 5.实现多边形生成的常用算法, 如扫描线算法,边缘填充算法。 6.实现一般连通区域的基于扫描线的种子填充算法。 7.将生成算法以菜单或按钮形式集成到用户界面上。 8.直线与圆的坐标参数可以用鼠标或键盘输入。 6. 可以实现任何情形的直线和圆的生成。 实验报告 1.用户界面的设计思想和框图。 2.各种实现算法的算法思想。 3.算法验证例子。 4.上交源程序。 直线生成程序设计的步骤如下: 为编程实现上述算法,本程序利用最基本的绘制元素(如点、直线等),绘制图形。如图1-1所示,为程序运行主界面,通过选择菜单及下拉菜单的各功能项分别完成各种对应算法的图形绘制。 图1-1 基本图形生成的程序运行界面 2.创建工程名称为“基本图形的生成”单文档应用程序框架 (1)启动VC,选择“文件”|“新建”菜单命令,并在弹出的新建对话框中单击“工程”标签。 (2)选择MFC AppWizard(exe),在“工程名称”编辑框中输入“基本图形的生成”作为工程名称,单击“确定”按钮,出现Step 1对话框。 (3)选择“单个文档”选项,单击“下一个”按钮,出现Step 2对话框。 (4)接受默认选项,单击“下一个”按钮,在出现的Step 3~Step 5对话框中,接受默认选项,单击“下一个”按钮。

计算机图形学5套模拟题

组卷规则:每套模拟题5个问答或者计算或者证明题,每题20分。 《计算机图形学基础》模拟试题(1) 1、简述Cohen-Sutherland 裁剪方法的思想,并指出与之相比,中点裁剪方法的改进之处,及这种改进的理由。 答:Cohen-Sutherland 裁剪算法的思想是:对于每条线段分为三种情况处理。(1)若完全在窗口内,则显示该线段简称“取”之。(2)若明显在窗口外,则丢弃该 线段,简称“弃”之。(3)若线段既不满足“取”的条件,也不满足“弃”的条件,则求线段与窗口交点,在交点处把线段分为两段。其中一段完全在窗口外,可弃之。然后对另一段重复上述处理。中点分割算法的大意是,与Cohen-Sutherland 算法一样首先对线段端点进行编码,并把线段与窗口的关系分为三种情况: 全在、完全不在和线段和窗口有交。对前两种情况, 进行同样的处理。对于第三种情况,用中点分割的方法求出线段与窗口的交点。即从点出发找出距最近的可见点A和从点出发找出距最近的可见点B,两个可见点之间的连线即为线段的可见部分。从出发找最近可见点采用中点分割方法:先求出的中点,若不是显然不可见的,并且在窗口中有可见部分,则距最近的可见点一定落在上,所以用代替;否则取代替。再对新的求中点。重复上述过程,直到长度小于给定的控制常数为止,此时收敛于交点。 改进之处在于,对第三种情况,不直接解方程组求交,而是采用二分法收搜索交点。这种改进的理由是:计算机屏幕的象素通常为1024×1024,最多十次二分搜索即可倒象素级,必然找到交点。而且中点法的主要计算过程只用到加法和除2运算,效率高,也适合硬件实现。 2、在Phong 模型 中,三项分别表示何含义?公式中的各个符号的含义指什么? 答:三项分别代表环境光、漫反射光和镜面反射光。为环境光的反射光强,为理想漫反射光强,为物体对环境光的反射系数,为漫反射系数,为镜面反射系数,为高光指数,L 为光线方向,N 为法线方向,V 为视线方向,R 为光线的反射方向。

图像处理课后习题

第一章绪论 1. 模拟图像处理与数字图像处理主要区别表现在哪些方面? (什么是图像?什么是数字图像?什么是灰度图像?模拟图像处理与数字图像处理主要区别表现在哪些方面?) 图像:是对客观对象的一种相似性的、生动性的描述或写真。 数字图像:一种空间坐标和灰度均不连续的、用离散数字(一般用整数)表示的图像。 灰度图像:在计算机领域中,灰度数字图像是每个像素只有一个采样颜色的图像。在数字图像领域之外,“黑白图像”也表示“灰度图像”,例如灰度的照片通常叫做 “黑白照片”。 模拟图像处理与数字图像处理主要区别:模拟图像处理是利用光学、照相方法对模拟图像的处理。(优点:速度快,一般为实时处理,理论上讲可达到光的速度, 并可同时并行处理。缺点:精度较差,灵活性差,很难有判断能力和非线性处理能力) 数字图像处理(称计算机图像处理,指将图像信号转换成数字格式并利用计算机对数据进行处理的过程)是利用计算机对数字图像进行系列操作,从而达到某种预期目的的技术.(优点:精度高,内容丰富,可进行复杂的非线性处理,灵活的变通能力,一只要改变软件就可以改变处理内容) 2. 图像处理学包括哪几个层次?各层次间有何区别和联系? 数字图像处理可分为三个层次:狭义图像处理、图像分析和图像理解。狭义图像处理是对输入图像进行某种变换得到输出图像,是一种图像到图像的过程。 图像分析主要是对图像中感兴趣的目标进行检测和测量,从而建立对图像目标的描述,图像分析是一个从图像到数值或符号的过程。 图像理解则是在图像分析的基础上,基于人工智能和认知理论研究图像中各目标的性质和它们之间的相互联系,对图像内容的含义加以理解以及对原来客观场景加以解译,从而指导和规划行动。 区别和联系:狭义图像处理是低层操作,它主要在图像像素级上进行处理,处理的数据量非常大;图像分析则进入了中层,经分割和特征提取,把原来以像素构成的图像转变成比较简洁的、非图像形式的描述;图像理解是高层操作,它是对描述中抽象出来的符号进行推理,其处理过程和方法与人类的思维推理有许多类似之处。 3. 图像处理与计算机图形学的区别与联系是什么? 数字图像处理,是指有计算机及其它有关的数字技术,对图像施加某种运算和处理,从而达到某种预期的目的,而计算机图形学是研究采用计算机生成,处理和显示图形的一门科学。 二者区别:研究对象不同,计算机图形学研究的研究对象是能在人的视觉系统中产生视觉印象的事物,包括自然景物,拍摄的图片,用数学方法描述的图形等,而数字图像处理研究对象是图像;研究内容不同,计算机图像学研究内容为图像生成,透视,消阴等,而数字图像处理研究内容为图像处理,图像分割,图像透析等;过程不同,计算机图像学是由数学公式生成仿真图形或图像,而数字图像处理是由原始图像处理出分析结果,计算机图形与图像处理是逆过程。 结合每个人的本专业学科、工作应用,谈谈数字图像处理的关系或在本专业学科中的应用。 检测技术与自动化装置是把自动化、电子、计算机、控制工程、信息处理、机械等多种

计算机图形学实验内容汇总

计算机图形学实验 肖加清

实验一图形学实验基础 一、实验目的 (1)掌握VC++绘图的一般步骤; (2)掌握OpenGL软件包的安装方法; (3)掌握OpenGL绘图的一般步骤; (4)掌握OpenGL的主要功能与基本语法。 二、实验内容 1、VC++绘图实验 (1)实验内容:以下是绘制金刚石图案。已给出VC++参考程序,但里面有部分错误,请改正,实现以下图案。 N=3 N=4

N=5 N=10 N=30

N=50 (2)参考程序 //自定义的一个类 //此代码可以放在视图类的实现文件(.cpp) 里class CP2 { public: 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 #include #include #include //定义输出窗口的大小 #define WINDOW_HEIGHT 300

图形学模拟试题 (含答案)

计算机图形学课程模拟试卷(参考答案含评分标准) 2010—2011学年第二学期 年级专业学号姓名得分 一、简要回答题(每题7分,共7题,共49分) 1.被誉为“图形学之父”的伊万?萨瑟兰(Ivan Sutherland)对计算机图形学理论和 应用的主要贡献有哪些? 答:(1)(3分)萨瑟兰在MIT攻读博士学位时,在著名的林肯实验室完成基于光笔的交互式图形系统:Sketchpad。这一系统中许多交互式图形设计的创意是革命性的,它的影响一直延续到今天。 (2)(4分)用于显示立体和彩色图像的“Lorgnette”技术和一系列图形图像算法,如分区编码的直线段裁剪算法、多边形裁剪算法、曲面的表示和消除隐藏线算法等等。 2.有人认为图形学算法主要依赖于点和向量的数学运算,你是否认同这一观点?给出 同意或反对的理由,并举例说明。 答:这一观点是正确的(2分),主要理由和举例如下(5分): (1)图形学的很多算法属于几何算法,点(从三维、二维到一维)是最基本的几何要素,也是统一基本几何的计算机表示形式。例如,在观察流水线上的主要图形学算法,无 论是表示和生成(显示)、建模(造型)、变换(包括投影、观察、消隐)都可以统 一到建立基于点的几何模型;(可以以典型的光栅图形学的算法如基本图形的生成和 变换、三维观察、Z-Buffer算法为例说明) (2)向量几何是图形学的重要数学基础、建立了以“方向性”概念的基本理论、思想方法、几何结构、几何算法与复杂性分析的几何计算理论体系。例如,借助向量几何可以将 二维布尔运算降为一维向量计算、将三维布尔运算下降为二维布尔运算、将三维消隐 算法最终归结为一维交集算法等等,从而使几何计算的复杂性大为简化。(可以以比 较典型的Liang-Barsky裁剪算法、三维实体造型CSG树生成,隐藏线消除算法等为例 说明)。 『评分说明』若认为这一观点是错误的或持有含糊的态度,且给出的例子是片面的、主观的,则本题不得分。其他错误情况者,如未举例说明,酌情扣2分左右。 3.针对多面体模型,直接用简单光照模型绘制会有什么问题?简述两种增量式光照明 模型(多边形绘制)的基本思想,并指出两个算法的主要区别。 答: (1)(3分)针对多面体模型,使用简单光照模型绘制会在多边形与多边形之交界处产生明暗的不连续变化,影响了曲面的显示效果,即马赫带效应。如果增加多边形个数,减小每个多边形的

计算机图形学第二版课后习题答案

第一章绪论 概念:计算机图形学、图形、图像、点阵法、参数法、 图形的几何要素、非几何要素、数字图像处理; 计算机图形学和计算机视觉的概念及三者之间的关系; 计算机图形系统的功能、计算机图形系统的总体结构。 第二章图形设备 图形输入设备:有哪些。 图形显示设备:CRT的结构、原理和工作方式。 彩色CRT:结构、原理。 随机扫描和光栅扫描的图形显示器的结构和工作原理。 图形显示子系统:分辨率、像素与帧缓存、颜色查找表等基本概念,分辨率的计算 第三章交互式技术 什么是输入模式的问题,有哪几种输入模式。 第四章图形的表示与数据结构 自学,建议至少阅读一遍 第五章基本图形生成算法 概念:点阵字符和矢量字符; 直线和圆的扫描转换算法; 多边形的扫描转换:有效边表算法; 区域填充:4/8连通的边界/泛填充算法;

内外测试:奇偶规则,非零环绕数规则; 反走样:反走样和走样的概念,过取样和区域取样。 5.1.2 中点 Bresenham 算法(P109) 5.1.2 改进 Bresenham 算法(P112) 习题答案

习题5(P144) 5.3 试用中点Bresenham算法画直线段的原理推导斜率为负且大于1的直线段绘制过程(要求写清原理、误差函数、递推公式及最终画图过程)。(P111) 解: k<=-1 |△y|/|△x|>=1 y为最大位移方向 故有 构造判别式: 推导d各种情况的方法(设理想直线与y=yi+1的交点为Q): 所以有: y Q-kx Q-b=0 且y M=y Q d=f(x M-kx M-b-(y Q-kx Q-b)=k(x Q-x M) 所以,当k<0, d>0时,M点在Q点右侧(Q在M左),取左点 P l(x i-1,y i+1)。 d<0时,M点在Q点左侧(Q在M右),取右点 Pr(x i,y i+1)。 d=0时,M点与Q点重合(Q在M点),约定取右点 Pr(x i,y i+1) 。 所以有 递推公式的推导: d2=f(x i-1.5,y i+2) 当d>0时, d2=y i+2-k(x i-1.5)-b 增量为1+k =d1+1+k

计算机图形学_陆枫_模拟试题1

一、填空(1×20=20分) 1. 一个交互性的计算机图形系统应具 有、、、、输入等五方面的功能。 2. 阴极射线管从结构上可以分 为、和。 3. 常用的图形绘制设备 有和,其中支持矢量格式。 5. 通常可以采用和处理线宽。 6. 齐次坐标表示就是用维向量表示n维向量。 7. 平行投影根据可以分 为和投影。 二、名词解释(3×5=15分) 1. 图像 2. 走样 3. 段 4. 4连通区域 5. 主灭点

三、简答与计算(6×5=30分) 1.图形包括哪两个方面的要素在计算机中如何表示它们 2.简述荫罩式彩色阴极射线管的结构和工作原理 3.在交互输入过程中,常用的管理设备的方式有哪些试分别说明。 4.举例说明奇偶规则和非零环绕树规则进行内外测试时有何不同 5.什么是观察坐标系为什么要建立观察坐标系 四、推导与计算题 (要 1. 试用中点Bresenham算法原理推导斜率大于1的直线段的扫描转换算法。求写清原理、误差函数和递推公式,并进行优化)(15分) 2. 已知直线,求相对于该直线作对称变换的变换矩阵。(10分) 3.试作出下图中三维形体ABCDE的三视图(平移矢量均为1)。要求写清变换过程,并画出生成的三视图。(10分) 一、填空

1. 计算;存储;交互(对话);输入。 2. 电子枪;偏转系统;荧光屏。 3. 打印机;绘图仪;笔式绘图仪。 4. 数值设备;字符串设备;选择设备;拾取设备。 5. 线刷子;方刷子。 6. n+1。 7. 投影方向与投影面是否垂直;正;斜。 二、名词解释 1. 图像:在计算机中用点阵法描述的图形叫做图像。 2. 走样:用离散量表示连续量引起的失真。 3. 段:段是指具有逻辑意义的有限个图素(或体素)及其附加属性的集合,也称为图段(二维空间中)、结构和对象。 4. 4连通区域:从区域上的一点出发,通过访问已知点的4-邻接点,在不越出区域的前提下,遍历区域内的所有像素点。 5. 主灭点:透视投影中,与坐标轴方向平行的平行线的投影会汇聚到一点,这个点称为主灭点。 三、简答与计算 1. 答:构成图形的要素可以分为刻画形状的点、线、面、体等的几何要素和反映物体表面属性或材质的明暗、灰度、色彩(颜色信息)等的非几何要素。

计算机图形学与图像处理教案

精编资料 了解图形学与图像处理的发展,应用以及当前国际国内研究的热点和重要成果;理解图形学与图像处理对图元以及图像的分析与理解的以及二维与三维形状重建等;... 图形,图像 计算机图形学与图像处理教案 学时:36,其中讲授26学时,上机10学时。 适用专业:信计专业与数学专业。 先修课程:高等数学、线性代数、数据结构、VC++或者C# 一、课程的性质、教育目标及任务: 计算机图形学与图像处理实际上是两门课程的一个综合。这是一门研究图形学与图像处理的基本理论、方法及其在智能化检测中应用的学科,是计算机科学与技术等电子信息类本科专业的专业课。 本课程侧重于对图形学的基本图元的基本生成,以及图像处理中对图像在空间域与频率域的基本处理算法的研究。并对图形学与图像处理基本理论和实际应用进行系统介绍。目的是使学生系统掌握图形学与图像处理的基本概念、原理和实现方法,学习图形学与图像处理分析的基本理论、典型方法和实用技术,具备解决智能化检测与控制中应用问题的初步能力,为在计算机视觉、模式识别等领域从事研究与开发打下扎实的基础。 二、教学内容基本要求: 1.了解图形学与图像处理的发展、应用以及当前国际国内研究的热点和重要成果; 2.理解图形学与图像处理对图元以及图像的分析与理解的以及二维与三维形状重建等; 3.掌握图形学与图像处理中最基本、最广泛应用的概念、原理、理论和算法以及基本技术和方法; 4.能够运用一门高级语言编写简单的图形学与图像处理软件,实现各种图形学与图像处理的算法。 三、主要教学内容:

学习图形学的基本概念,了解光栅显示系统的原理;掌握基本图元的生成算法:直线的生成算法、曲线的生成算法、多边形的生成算法;掌握区域填充、线段剪裁以及多边形的剪裁;掌握图元的几何变换、以及投影的基本理论。 了解图像的概念;图像数字化的基本原理:取样、量化、数字图像的表示;线性系统理论在图像变换,滤波中的应用:线性系统理论、离散图像变换、小波变换;图像编码压缩、增强,以及复原的基本方法:无失真压缩、有失真压缩、变换编码、压缩标准、图像滤波原理、复原滤波器、直方图运算、点运算;图像识别的基本原理和方法:图像分割、图像分析、图像分类; 四、学时安排 总课时72学时,图形学36学时,其中包括26个学时讲授,10个学时上机;图像处理36学时,其中包括26个学时讲授,10个学时上机; 五、参考书目: (1), Donald Hearn & M,Pauline Baker (2),< Computer Graphics with OpenGL, Third Edition> Donald Hearn & M,Pauline Baker (3),计算机图形学实用技术陈元琰,张晓竞,科学出版社 (4),计算机图形学倪明田,吴良芝北京大学出版社 (5) <>, Rafael C. Gonzalez & Richard E. Woods. Publishing House of Electronics Industry. (6) << Image Processing ,Analysis, and Machine Vision ( second Edition)>> ,Milan Sonka, V aclav Hlavac. Publishing House of People Post 第一讲图形学基本概念 重点: 了解图形学概念;掌握图形学中的几个概念:分辨率,光栅,扫描线,像素,帧缓冲器;了解图形学的基本用途;掌握图形学光栅扫描显示系统的工作原理; 难点: 光栅扫描显示系统的工作原理; 教学方法: 课堂讨论式教学方法,基于问题式以及启发式教学方法相结合。双语教学。 主要内容: 1,什么是计算机图形学? 2,计算机图形学的主要用途是什么? 3,计算机图形学中的一些基本概念: 什么是分辨率?什么是光栅?什么是光栅扫描系统的扫描线?什么是像 素?什么是帧缓冲器?什么是刷新率?

计算机图形学实验三报告

计算机科学与通信工程学院 实验报告 课程计算机图形学 实验题目二维图形变换 学生姓名 学号 专业班级 指导教师 日期

成绩评定表

二维图形变换 1. 实验内容 完成对北极星图案的缩放、平移、旋转、对称等二维变换。 提示:首先要建好图示的北极星图案的数据模型(顶点表、边表)。另外,可重复调用“清屏”和“暂停”等函数,使整个变换过程具有动态效果。 2. 实验环境 软硬件运行环境:Windows XP 开发工具:visual studio 2008 3. 问题分析

4. 算法设计 程序框架: //DiamondView.h class CDiamondView : public CView { …… public: //参数输入和提示对话框 void Polaris();//北极星 …… }; //DiamondView.cpp void CDiamondView::OnMenuDiamond() { IsCutting = FALSE; if(dlgDiamond.DoModal()==IDOK) DrawDiamond(dlgDiamond.m_nVertex,dlgDiamond.

m_nRadius,100);//调用绘制金刚石的函数 } //北极星 void CDiamondView::Polaris() {......} 5. 源代码 //北极星 void hzbjx(CDC* pDC,long x[18],long y[18]) { CPen newPen1,*oldPen; newPen1.CreatePen(PS_SOLID,2,RGB(255,0,0)); oldPen = pDC->SelectObject(&newPen1); POINT vertex1[11]={{x[1],y[1]},{x[2],y[2]},{x[3],y[3]},{x[4],y[4]},{x[5],y[5]},{x[3],y[3]},{x[1],y[1]}, {x[6],y[6]},{x[3],y[3]},{x[7],y[7]},{x[5],y[5]}}; pDC->Polyline(vertex1, 11); newPen1.DeleteObject(); newPen1.CreatePen(PS_SOLID, 2, RGB(0,255,0)); oldPen = pDC->SelectObject(&newPen1); POINT vertex2[5]={{x[6],y[6]},{x[8],y[8]},{x[9],y[9]},{x[3],y[3]},{x[8],y[8]}}; pDC->Polyline(vertex2, 5); POINT vertex3[5]={{x[4],y[4]},{x[10],y[10]},{x[11],y[11]},{x[3],y[3]},{x[10],y[10]}}; pDC->Polyline(vertex3, 5);

《计算机图形学》练习试题及参考答案(二)

《计算机图形学》练习试题及参考答案 二、选择题(每题2分) B 1、计算机图形学与计算几何之间的关系是( )。 A)学术上的同义词B)计算机图形学以计算几何为理论基础 C)计算几何是计算机图形学的前身D).两门毫不相干的学科 B 2、计算机图形学与计算机图象学的关系是( )。 A)计算机图形学是基础,计算机图象学是其发展 B)不同的学科,研究对象和数学基础都不同,但它们之间也有可转换部分 C)同一学科在不同场合的不同称呼而已 D)完全不同的学科,两者毫不相干 C 3、触摸屏是( )设备。 A)输入B)输出C)输入输出D)既不是输入也不是输出 B 4.计算机绘图设备一般使用什么颜色模型?( ) A)RGB;B)CMY;C)HSV ;D)HLS A 5. 计算机图形显示器一般使用什么颜色模型?( ) A)RGB;B)CMY;C)HSV ;D)HLS C 6.分辨率为1024×1024的显示器各需要多少字节位平面数为24的帧缓存?( ) A)512KB;B)1MB;C)2MB ;D)3MB

D 7.哪一个不是国际标准化组织(ISO)批准的图形标准?( ) A)GKS;B)PHIGS;C)CGM ;D)DXF C8.下述绕坐标原点逆时针方向旋转a角的坐标变换矩阵中哪一项是错误的? ( ) | A B | | C D | A) cos a; B) sin a; C) sin a; D) cos a A 9、在多边形的逐边裁剪法中,对于某条多边形的边(方向为从端点S 到端点P)与某条裁剪线(窗口的某一边)的比较结果共有以下四种情况,分别需输出一些顶点.请问哪种情况下输出的顶点是错误的? ( ) A)S和P均在可见的一侧,则输出S和P. B)S和P均在不可见的一侧,则输出0个顶点. C)S在可见一侧,P在不可见一侧,则输出线段SP与裁剪线的交点. D)S在不可见的一侧,P在可见的一侧,则输出线段SP与裁剪线的交点和P. C 10、在物体的定义中对边的哪条限制不存在? ( ) A) 边的长度可度量且是有限的 B) 一条边有且只有两个相邻的面

计算机图形学实验

实验1 直线的绘制 实验目的 1、通过实验,进一步理解和掌握DDA和Bresenham算法; 2、掌握以上算法生成直线段的基本过程; 3、通过编程,会在TC环境下完成用DDA或中点算法实现直线段的绘制。实验环境 计算机、Turbo C或其他C语言程序设计环境 实验学时 2学时,必做实验。 实验内容 用DDA算法或Besenham算法实现斜率k在0和1之间的直线段的绘制。 实验步骤 1、算法、原理清晰,有详细的设计步骤; 2、依据算法、步骤或程序流程图,用C语言编写源程序; 3、编辑源程序并进行调试; 4、进行运行测试,并结合情况进行调整; 5、对运行结果进行保存与分析; 6、把源程序以文件的形式提交; 7、按格式书写实验报告。 实验代码:DDA: # include # include

void DDALine(int x0,int y0,int x1,int y1,int color) { int dx,dy,epsl,k; float x,y,xIncre,yIncre; dx=x1-x0; dy=y1-y0; x=x0; y=y0; if(abs(dx)>abs(dy)) epsl=abs(dx); else epsl=abs(dy); xIncre=(float)dx/(float)epsl; yIncre=(float)dy/(float)epsl; for(k=0;k<=epsl;k++) { putpixel((int)(x+0.5),(int)(y+0.5),4); x+=xIncre; y+=yIncre; } } main(){ int gdriver ,gmode ;

计算机图形学实验报告

《计算机图形学》实验报告姓名:郭子玉 学号:2012211632 班级:计算机12-2班 实验地点:逸夫楼507 实验时间:15.04.10 15.04.17

实验一 1 实验目的和要求 理解直线生成的原理;掌握典型直线生成算法;掌握步处理、分析实验数据的能力; 编程实现DDA 算法、Bresenham 中点算法;对于给定起点和终点的直线,分别调用DDA 算法和Bresenham 中点算法进行批量绘制,并记录两种算法的绘制时间;利用excel 等数据分析软件,将试验结果编制成表格,并绘制折线图比较两种算法的性能。 2 实验环境和工具 开发环境:Visual C++ 6.0 实验平台:Experiment_Frame_One (自制平台) 3 实验结果 3.1 程序流程图 (1)DDA 算法 是 否 否 是 是 开始 计算k ,b K<=1 x=x+1;y=y+k; 绘点 x<=X1 y<=Y1 绘点 y=y+1;x=x+1/k; 结束

(2)Mid_Bresenham 算法 是 否 否 是 是 是 否 是 否 开始 计算dx,dy dx>dy D=dx-2*dy 绘点 D<0 y=y+1;D = D + 2*dx - 2*dy; x=x+1; D = D - 2*dy; x=x+1; x

3.2程序代码 //-------------------------算法实现------------------------------// //绘制像素的函数DrawPixel(x, y); (1)DDA算法 void CExperiment_Frame_OneView::DDA(int X0, int Y0, int X1, int Y1) { //----------请实现DDA算法------------// float k, b; float d; k = float(Y1 - Y0)/float(X1 - X0); b = float(X1*Y0 - X0*Y1)/float(X1 - X0); if(fabs(k)<= 1) { if(X0 > X1) { int temp = X0; X0 = X1; X1 = temp; }

计算机图形学实验一_画直线

大学实验报告 学院:计算机科学与技术专业:计算机科学与技术班级:计科131

如果 d<0,则M在理想直线下方,选右上方P1点; 如果 d=0,则M在理想直线上,选P1/ P2点。 由于d是xi和yi的线性函数,可采用增量计算提高运算效率。 1.如由pi点确定在是正右方P2点(d>0).,则新的中点M仅在x方向加1,新的d值为: d new=F(xi+2,yi+0.5)=a(xi+2)+b(yi+0.5)+c 而 d old=F(xi+1,yi+0.5)=a(xi+1)+b(yi+0.5)+c d new=d old+a= d old-dy 2.如由pi点确定是右上方P1点(d<0),则新的中点M在x和y方向都增加1,新的d值为 d new=F(xi+2,yi+1.5)=a(xi+2)+b(yi+1.5)+c 而 d old=F(xi+1,yi+0.5)=a(xi+1)+b(yi+0.5)+c d new=d old+a+b= d old-dy+dx 在每一步中,根据前一次第二迭中计算出的d值的符号,在正右方和右上方的两个点中进行选择。d的初始值: d0=F(x0+1,y0+0.5)=F(x0,y0)+a+b/2=a+b/2=-dy+dx/2 F(x0,y0)=0,(x0,y0)在直线上。 为了消除d的分数,重新定义 F(x,y)=2(ax+by+c) 则每一步需要计算的d new 是简单的整数加法 dy=y1-y0,dx=x1-x0 d0=-2dy+dx d new=d old-2*dy,当 d old>=0 d new=d old-2(dy-dx),当d old<0 Bresenham画线算法 算法原理: 与DDA算法 相似,Bresenham 画线算法也要在 每列象素中找到 与理想直线最逼 近的象素点。 根据直线的 斜率来确定变量 在x或y方向递 增一个单位。另 一个方向y或x

计算机图形学考试题及答案

一、填空题(每空1分) 1、分辨率为2048×1024,能显示256种颜色的显示器,至少需要选用帧缓存 容量为 2 MB。 2、彩色显示器使用颜色模型,而彩色打印机使用颜色模型。 3、在图形文件中,常用来描述图形元素(点,线,圆,弧等);而在光栅扫 描图形显示器中,采用显示所有图形。 4、当三维物体用透视变换方程投影到观察平面上,物体中不与观察平面平行 任一簇平行线投影成收敛线,其收敛点为。物体的平行于某一坐标轴的平行线的灭点为。 5、可见光的波长为纳米。 6、在简单光照模型中,一个点光源照射到物体表面上一点,再反射出来的光, 可分为三部分、和。 7、在文件大小上,位图图像要比矢量图形文件。 二、选择题(有的为多选题,每题2分) (1)在下列有关CRT显示器的叙述中,正确的论述为(ABD ) A、CRT由五部分组成:电子枪、聚焦系统、加速系统、磁偏转系统和荧光 屏; B、电子枪:发射电子流并控制其强弱; C、聚焦系统:将电子束引向荧光屏特定的位置。 D、加速系统:使电子束加速到应有的速度; E、磁偏转系统:将电子流聚焦成很窄的电子。; (2)下述用数值微分法(DDA)画斜率的绝对值小于1的直线的C语言子程序中哪一行有错(D ) V oid drawLineWithDDA(int x1, int y1, int x2, int y2, int color) { A、int x, y; B、float k = (float)(y2-y1)(x2-x1); C、for(x=x1,y=y1;x<=x2;x++) { putpixel (x, y, color); } D、y+=k; } (3)使用下列二维图形变换矩阵,将产生的变换结果为( D ) A、图形放大2倍; B、图形放大2倍,同时沿X、Y坐标轴方向各移动1个绘图单位; C、沿X坐标轴方向各移动2个绘图单位;

计算机图形学期末考试卷答案

1 每题3分)。 1. 提出“计算机图形学”的一些基本概念和技术,确定了计算机图形学作为一个 崭新科学分支的独立地位,从而被称为图形学之父的是: A 。 A. Ivan E. Sutherland B . Pierre Bézie C. Steven A. Coons D. Bui-Tuong Phong 2. 在Warnack 消隐算法中,窗口与多边形的关系不包括哪些 D ? A. 内含 B. 相交 C. 包围 D. 内切 3. 以下实体模型表示方法中,哪种方法不属于构造表示方法 C 。 A. 扫描表示 B. CSG 表示 C.八叉树表示 D. 构造实体几何表示 4. 光线跟踪算法的主要计算量在于: D 。 A. 基于Phong 模型的明暗度计算 B. 反射方向计算 C. 折折射方向计算 D. 求交计算 5. 用中点法扫描转换方法扫描以(0,0), (5,2)为端点的直线段时,不经过下 面哪个点 C ? A .(1,0) B. (2,1) C. (3,2) D. (4,2) 6. 第一次提出的光透射是 A 模型。 A. Whitted 模型 B.Phone 模型 C.Hall 光透射模型 D. Gourand 模型 7. 多项式Bezier 曲线不能表示哪种几何元素 C ? A. 直线 B. 单曲线 C. 双曲线 D. 抛物线 8. 属于空间剖分技术的光线跟踪加速方法有: A 。 A. 三维DDA B. 层次包围盒 C. 辐射度 D. 自适应深度控制 9. 以下算法哪个不是消隐的算法 D ? A. Z-Buffer 算法 B. Warnack 算法 C. 区间扫描线算法 D. Liang-Barskey 算法 10. 改变一条以P 0,P 1,P 2,P 3为控制顶点的4 阶(三次)Bezier 曲线,有几段曲线 的形状会改变: D 。 A .0 B.1 C.2 D.全部 二、填空题(20分,每空1分)。 1. 曲线间连接的光滑度的度量方式有 参数连续 和 几何连续 两种。 2. 对于Bernstein 基函数,B i ,n (t )在t= i/n 处达到最大值。 3. 在实体模型的表示中,基本方法有 分解表示 、 构造表示 和 边界表示 三大类。 4. 印刷业常用的颜色模型是 CMY 。 5. 半边结构中,每个顶点需要保存的信息有 顶点几何信息 和 从此顶点出发 的半边 信息。 6. 从心理学和视觉的角度分析,颜色的三个基本特征是 色调 、 饱和度 和 亮度 ,从物理学角度出发,所对应的三个特性分别是 主波长 、 纯度 和 明度 。 7. 为了改进Phone 光照模型中出现的马赫带效应,所提出的增量式光照明模型中 所包含的两种主要处理方式有 Phong 明暗 处理和 Gouraud 明暗 处理。 8. Phone 明暗处理所采用的是 双线性法向 插值方法。 9. 在真实感图形学中,定义纹理的两种方法是 图像纹理 和 函数纹理 。 10分)。 1. 简述什么是颜色模型,并列举三种常见的颜色模型,简要说明其原理和特点。 答:所谓颜色模型是指某个三维颜色空间中的一个可见光子集,它包含某个 某个颜色域的所有颜色。(3’) 常用的颜色模型有:RGB ,CMY ,HSV(1) RGB :通常用于彩色阴极射线管等彩色光栅图形显示设备中,采用三维直角 坐标系,红、绿、蓝为原色,各个原色混合在一起可产生复合色。(2’)

计算机图形学作业答案

计算机图形学作业答案 第一章序论 第二章图形系统 1.什么是图像的分辨率? 解答:在水平和垂直方向上每单位长度(如英寸)所包含的像素点的数目。 2.计算在240像素/英寸下640×480图像的大小。 解答:(640/240)×(480/240)或者(8/3)×2英寸。 3.计算有512×512像素的2×2英寸图像的分辨率。 解答:512/2或256像素/英寸。 第三章二维图形生成技术 1.一条直线的两个端点是(0,0)和(6,18),计算x从0变到6时y所对应的值,并画出结果。 解答:由于直线的方程没有给出,所以必须找到直线的方程。下面是寻找直线方程(y =mx+b)的过程。首先寻找斜率: m =⊿y/⊿x =(y 2-y 1 )/(x 2 -x 1 )=(18-0)/(6-0) = 3 接着b在y轴的截距可以代入方程y=3x+b求出 0=3(0)+b。因此b=0,所以直线方程为y=3x。 2.使用斜截式方程画斜率介于0°和45°之间的直线的步骤是什么? 解答: (1)计算dx:dx=x 2-x 1 。 (2)计算dy:dy=y 2-y 1 。 (3)计算m:m=dy/dx。 (4)计算b: b=y 1-m×x 1 (5)设置左下方的端点坐标为(x,y),同时将x end 设为x的最大值。如果 dx < 0,则x=x 2、y=y 2 和x end =x 1 。如果dx > 0,那么x=x 1 、y=y 1 和x end =x 2 。 (6)测试整条线是否已经画完,如果x > x end 就停止。 (7)在当前的(x,y)坐标画一个点。 (8)增加x:x=x+1。 (9)根据方程y=mx+b计算下一个y值。 (10)转到步骤(6)。 3.请用伪代码程序描述使用斜截式方程画一条斜率介于45°和-45°(即|m|>1)之间的直线所需的步骤。

《计算机图形学实验报告》

一、实验目的 1、掌握中点Bresenham直线扫描转换算法的思想。 2掌握边标志算法或有效边表算法进行多边形填充的基本设计思想。 3掌握透视投影变换的数学原理和三维坐标系中几何图形到二维图形的观察流程。 4掌握三维形体在计算机中的构造及表示方法 二、实验环境 Windows系统, VC6.0。 三、实验步骤 1、给定两个点的坐标P0(x0,y0),P1(x1,y1),使用中点Bresenham直线扫描转换算法画出连接两点的直线。 实验基本步骤 首先、使用MFC AppWizard(exe)向导生成一个单文档视图程序框架。 其次、使用中点Bresenham直线扫描转换算法实现自己的画线函数,函数原型可表示如下: void DrawLine(CDC *pDC, int p0x, int p0y, int p1x, int p1y); 在函数中,可通过调用CDC成员函数SetPixel来画出扫描转换过程中的每个点。 COLORREF SetPixel(int x, int y, COLORREF crColor ); 再次、找到文档视图程序框架视图类的OnDraw成员函数,调用DrawLine 函数画出不同斜率情况的直线,如下图:

最后、调试程序直至正确画出直线。 2、给定多边形的顶点的坐标P0(x0,y0),P1(x1,y1),P2(x2,y2),P3(x3,y3),P4(x4,y4)…使用边标志算法或有效边表算法进行多边形填充。 实验基本步骤 首先、使用MFC AppWizard(exe)向导生成一个单文档视图程序框架。 其次、实现边标志算法或有效边表算法函数,如下: void FillPolygon(CDC *pDC, int px[], int py[], int ptnumb); px:该数组用来表示每个顶点的x坐标 py :该数组用来表示每个顶点的y坐标 ptnumb:表示顶点个数 注意实现函数FillPolygon可以直接通过窗口的DC(设备描述符)来进行多边形填充,不需要使用帧缓冲存储。(边标志算法)首先用画线函数勾画出多边形,再针对每条扫描线,从左至右依次判断当前像素的颜色是否勾画的边界色,是就开始填充后面的像素直至再碰到边界像素。注意对顶点要做特殊处理。 通过调用GDI画点函数SetPixel来画出填充过程中的每个点。需要画线可以使用CDC的画线函数MoveTo和LineTo进行绘制,也可以使用实验一实现的画直线函数。 CPoint MoveTo(int x, int y ); BOOL LineTo(int x, int y ); 实现边标志算法算法需要获取某个点的当前颜色值,可以使用CDC的成员函数 COLORREF GetPixel(int x, int y ); 再次、找到文档视图程序框架视图类的OnDraw成员函数,调用FillPolygon 函数画出填充的多边形,如下: void CTestView::OnDraw(CDC* pDC) { CTestcoodtransDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc);

相关文档
最新文档