图形学复习题及其解答.docx
《图形学复习题及其解答.docx》由会员分享,可在线阅读,更多相关《图形学复习题及其解答.docx(22页珍藏版)》请在冰豆网上搜索。
图形学复习题及其解答
2010年图形学复习题及其解答
1.计算机图形学的定义
答:
计算机图形学是研究在计算机中输入、表示、处理和显示图形的原理、方法及硬件设备的学科。
几何计算专门研究几何图形信息(曲面和三维实体)的计算机表示、分析、修改和综合
2.图形本质上是有线形、宽度、颜色等属性信息的图形元素的组合。
因此,抽象的图形的本质可以概括为:
图形=图元+属性。
几何计算是计算机图形学的基础。
图形学表示、生成和处理是建模-变换-像素点的几何位置决定的过程,属于几何或者3D问题;显示应该是对客观世界的机内表示的再现,是决定屏幕点的显示属性(可见性和颜色:
色调、色饱和度、亮度)属于图像或者2D问题。
计算机图形学所研究的图形是从客观世界物体中抽象出来的带有颜色及其形状信息的图和形
3.计算机图形学主要研究两个问题:
一是如何在计算机中构造一个客观世界——几何(模型)的描述、创建和处理,以“几何”一词统一表述之;二是如何将计算机中的虚拟世界用最形象的方式静态或者动态的展示出来——几何的视觉再现,以“绘制”一词统一描述之。
因此可以说:
计算机图形学=几何+绘制。
几何是表示,是输入。
绘制是展现,是输出。
4.计算机图形学、图像处理、计算几何之间的关系。
答:
计算机图形学的主要目的是由数学模型生成的真实感图形,其结果本身就是数字图像;而图像处理的一个主要目的是由数字图像建立数字模型,这说明了图形学和图像处理之间相互密切的关系。
计算机几何定义为形状信息的计算机表示、分析与综合。
随着计算机图形学及其应用的不断发展,计算机图形学、图像处理和计算几何等与图相关的学科越来越融合,且与应用领域的学科相结合,产生了诸如可视化、仿真和虚拟现实等新兴学科。
5.一个三维场景视觉实现的基本工作过程
根据假定的光照条件和景物外观因素,依据该光照模型,模拟光能在场景中的传播和分布(包括光线在不同物体间的吸收、反射、折射和散射等过程),计算得到画面上每一点的光强和色彩值后,根据视觉特点转换成适合于显示设备的颜色值,得到画面上每一个像素的属性。
这是一个光强与色彩的量化、纹理映射、图像合成、帧缓存等一些基于物理、光学、色彩理论和技术的复杂计算过程
6.计算机图形学开篇之作及其相关信息。
答:
1963年MIT的IvanE.Sutherland在他的博士论文“Sketchpad:
一个人-机通信的图形系统”中首次提出“ComputerGraphics(计算机图形学)”,使用阴极射线管显示器和光笔,可交互式地生成简单图形。
他本人被称为计算机图形学之父
7.计算机图形学的相关应用领域的术语定义及其英文名称和缩略语答:
图形用户界面(GUI)
计算机辅助设计与制造(CAD/CAM)
科学计算可视化(visualizationinscientificcomputing)
地理信息系统(GIS)
娱乐
计算机艺术
虚拟现实(VR)
逆向工程(reverseengineering)
8.图形输入设备逻辑分类和输出设备的分类
答:
图形输入设备从逻辑上分为6种功能,即定位(locator)、笔画(stroke)、数值(valuator)、选择(choice)、拾取(pick)及字符串(string);图形的输出设备主要有显示器、打印机和绘图仪两种。
9.图形显示设备的相关术语:
像素、分辩率、点距等等。
答:
电子枪发射电子束,经过聚焦在偏转系统控制下电子束轰击荧光屏,在荧光屏上产生足够小的光点,光点称为像素(pixel)。
阴极射线管在水平和垂直方向单位长度上能识别的最大光点数称为分辨率。
点距一般是指显示屏相邻两个像素点之间的距离。
10.CRT显示设备的主要组成部件及其工作原理。
答:
CRT显示设备主要由电子枪、聚焦系统、加速电极、偏转系统和荧光屏五部分组成。
其工作原理是:
高速的电子束由电子枪发出,经过聚焦系统、加速系统和磁偏转系统就会到达荧光屏的特定位置。
由于荧光物质在高速电子的轰击下会发生电子跃迁,即电子吸收到能量从低能态变为高能态。
由于高能态很不稳定,在很短的时间内荧光物质的电子会从高能态重新回到低能态,这时将发出荧光,屏幕上的那一点就会亮了。
11.CRT产生彩色的基本途径。
答:
CRT产生的色彩是发出不同颜色的荧光物质进行组合而得到的,每个像素由三个荧光点组成,这三个荧光点分别为发红、绿和蓝色光的三种荧光物质,有三支电子枪分别与这三个荧光点相对应。
因为荧光点非常小而且充分靠近,所以我们看到的是具有它们混合颜色的一个光点。
通过调节电子枪发出的电子束中所含电子的多少,可以控制击中的相应荧光点的亮度,因此以不同的强度击中荧光点,就能够在像素点上生成极其丰富的颜色。
12.显示缓冲显示器和分辨率的关系及其大小的计算。
答:
显示器缓存=分辨率×颜色比特数
13.CRT真彩色和伪彩色的颜色大小及其应用环境。
答:
真彩色是16兆种颜色,伪彩色有256色。
真彩是指windows正常显示,伪彩一般在安全模式
14.LCD显示器的工作原理。
答:
LCD显示器的工作原理是利用液晶的物理特性,通电时导通,晶体在电场作用下,排列变得有秩序,通过它的光的折射角度会发生变化,使光线容易通过;不通电时,晶体排列变得混乱,光被遮挡,不能通过。
15.图形标准实现了哪些可移植性?
提供了哪些接口?
答:
图形标准的制定是为了在不同的计算机系统和外设之间进行图形应用软件的移植。
这种移植性包括应用程序在不同系统之间的可移植性、应用程序与图形设备的无关性、图形数据的可移植性和程序员层次的可移植性。
为了实现这些可移植性,有三个接口必须实现统一标准:
应用接口
虚拟图形设备接口
数据接口。
16.Windows程序的执行模式及流程,为了实现图形的输入和输出Windows采用什么技术?
答:
在Windows应用程序中,有一个WinMain函数,它是Windows应用程序执行的开始点。
WinMain函数在完成初始化后创建该应用程序的一个窗口,这个窗口被称为“主窗口”。
主窗口创建了窗口函数WndProc,用来接收和处理消息。
用户的所有操作均以消息的形式进入消息队列,应用程序从消息队列中检测和选取消息,并分别处理。
Windows应用程序使用图形设备接口进行图形编程,Windows自动将设备上下文映射到具体的物理设备上实现图形输出。
图形的输入和输出Windows采用GDI技术。
17.五种开发技术的比较
技术
实现层次
语言及其难易程度
扩展性
应用领域
OpenGL
底层(显卡)
C/C++(难)
厂商全面支持(好)
三维设计软件
ACIS
底层(操作系统)
C++(难)
Windows平台(较好)
三维造型和显示
DirectX
底层(操作系统)
C++(难)
Windows平台(差)
三维游戏
Java3D
中间层(JVM)
Java(较易)
JavaSE标准扩展(好)
网上三维显示实现
VRML
高层(网页)
标记语言(容易)
安装插件支持(一般)
网上虚拟实现
18.OpenGL是什么样的图形标准。
OpenGL的主要功能。
答:
OpenGL(OpenGraphicsLibrary,即开放性图形库)是以SGI的GL三维图形库为基础制定的一个开放式三维图形标准。
OpenGL的主要功能:
绘制模型、各种变换、着色模式、光照处理、纹理映射、位图和图像、制作动画、选择和反馈。
此外,OpenGL还提供了反走样技术,能够实现深度暗示(DepthCue)、运动模糊(MotionBlur)、雾化(Fog)等特殊效果。
19.OpenGL的工作流程和原理。
用C++实现OpenGL编程main函数的主要的语句(GLUT库函数及其调用次序).
答:
OpenGL指令从左侧进入OpenGL,有两类数据,分别是由顶点描述的几何模型和由像素描述的位图、影像等模型,其中后者经过像素操作后直接进入光栅化。
评价器(Evaluator)用于处理输入的模型数据,为下一步光栅化做好准备。
显
4、累积缓存
20.常用的直线扫描转换算法有哪些?
答:
数值微分法(DDA)、中点画线法和Bresenham算法。
21.DDA和Bresenham算法的基本原理(就是指最后增量公式的推导过程)、算法OpenGL编程实现、手工计算给定端点直线的扫描像素点。
答:
DDA算法基本原理是用数值方法解微分方程,通过同时对x和y各增加一个小增量,计算下一步的x、y值。
Bresenham算法的基本原理是借助于一个误差量(直线与当前实际绘制像素点的距离),来确定下一个像素点的位置。
算法的巧妙之处在于采用增量计算,使得对于每一列,只要检查误差量的符号,就可以确定该下一列的像素位置。
22.中点画圆算法OpenGL编程实现(八分之一圆、完整圆)。
八分之一圆程序:
MidPointCircle(intr,intcolor)
{
intx,y;
inte;
x=0;y=r;e=1-r;
circlepoints(x,y,color);//做对称处理
while(x<=y)
{
if(e<0)
e+=2*x+3;
else
{
e+=2*(x-y)+5;
y--;
}
x++;
circlepoints(x,y,color);//做对称处理
}
}
23.图形的边界处理原则。
多边形两种表示方法及其特点。
答:
原则:
左闭右开,上闭下开。
两种重要的表示方法:
顶点表示和点阵表示。
所谓顶点表示,即是用多边形的顶点序列来表示多边形。
这种表示直观、几何意义强、占内存少,易于进行几何变换,但由于它没有明确指出哪些像素在多边形内,故不能直接用于区域填充。
所谓点阵表示,则是用位于多边形内的像素集合来刻画多边形。
这种表示丢失了许多几何信息,但便于进行填充。
24.扫描线多边形区域填充算法的原则。
答:
待填充区域按Y方向(X方向亦可)扫描线顺序扫描生成。
25.有序边表扫描线算法实现步骤。
边界标记算法的基本思想和伪代码描述。
答:
有序边表扫描线算法实现步骤
(1)求交:
计算扫描线与多边形各边的交点;
(2)排序:
把所有交点按x值递增顺序排序;
(3)配对:
第一个与第二个,第三个与第四个等等;每对交点代表扫描线与多边形的一个相交区间;
(4)填色:
把相交区间内的像素置成多边形颜色,把相交区间外的像素置成背景色。
边界标记算法的基本思想:
帧缓冲器中对多边形的每条边进行直线扫描转换,亦即对多边形边界所经过的象素打上标志。
然后再采用和扫描线算法类似的方法将位于多边形内的各个区段着上所需颜色。
使用一个布尔量inside来指示当前点是否在多边形内的状态。
伪代码:
voidedgemark_fill(polydef,color)
多边形定义polydef;intcolor;
{对多边形polydef每条边进行直线扫描转换;
inside=FALSE;
for(每条与多边形polydef相交的扫描线y)
for(扫描线上每个象素x)
{if(象素x被打上边标志)
inside=!
(inside);
if(inside!
=FALSE)
drawpixel(x,y,color);
elsedrawpixel(x,y,background);
}
}
26.四种子和八种子填充算法以及边界填充算法的程序实现。
内点表示的四种子填充算法程序:
voidFloodFill4(intx,inty,intoldcolor,intnewcolor)
{
if(GetPixel(x,y)==oldcolor)
{
SetPixel(x,y,newcolor);
FloodFill4(x,y+1,oldcolor,newcolor);
FloodFill4(x,y-1,oldcolor,newcolor);
FloodFill4(x-1,y,oldcolor,newcolor);
FloodFill4(x+1,y,oldcolor,newcolor);
}
}
边界表示的四种子填充算法程序:
voidBoundaryFill4(intx,inty,intboundarycolor,intnewcolor)
{
intcolor;
if(color!
=newcolor&&color!
=boundarycolor)
{
SetPixel(x,y,newcolor);
BoundaryFill4(x,y+1,boundarycolor,newcolor);
BoundaryFill4(x,y-1,boundarycolor,newcolor);
BoundaryFill4(x-1,y,boundarycolor,newcolor);
BoundaryFill4(x+1,y,boundarycolor,newcolor);
}
}
27.VC++框架的绘图的函数:
OnDraw的使用。
答:
例:
画出一个半径为5像素的圆并以黑色填充之,得到一个比较大的点:
voidCDrowDotView:
:
OnDraw(CDC*pDC)
{
pDC->SelectStockObject(BLACK_BRUSH);//画出的点为黑色
pDC->Ellipse(CRect(5,10,10,15));//画一个小圆
}
例:
画一条从(5,5)到(50,50)的直线,则程序代码如下:
voidCDrawLineView:
:
OnDraw(CDC*pDC)
{
pDC->MoveTo(5,5);
pDC->LineTo(50,50);
}
28.掌握OpenGL画点和画直线的代码。
画点:
glBegin(GL_POINTS);
glVertex2f(0.0,0.0);
glVertex2f(0.0,3.0);
glVertex2f(3.0,3.0);
glVertex2f(4.0,1.5);
glVertex2f(3.0,0.0);
glEnd();
画直线:
glBegin(GL_LINES);
glVertex2f(0.5f,0.5f);
glVertex2f(-0.5f,0.0f);
glVertex2f(-0.5f,0.5f);
glVertex2f(0.0f,-0.5f);
glEnd();
29.图形变换的分类(三类)。
齐次坐标及其优点。
答:
几何变换、坐标变换、显示变换
所谓齐次坐标表示就是用n+1维向量表示n维向量。
优点:
一方面可以表示无穷远点;另一方面容易用矩阵与矢量乘的方法表示点的平移操作,以便简化计算过程。
30.二维图形的齐次坐标矩阵变换矩阵各分量的含义。
答
31.掌握二维图形的平移、对称、旋转、缩放变换的矩阵形式。
答:
32.三维图形的显示流程,窗口区和视图区的坐标变换。
变换过程:
(1)将窗口左下角点(WXL,WYB)平移到窗口所在坐标系的原点;
(2)进行缩放变换,使窗口的大小与视区相等;
(3)将窗口内的点映射到视区中,再进行反平移,将视区的左下角移回到原来的位置。
33.平面几何的投影分类标准及分类。
答:
分类标准即投影方式。
可分为平行投影和透视投影。
34.什么是裁剪?
常用的直线裁剪和多边形裁剪算法有哪些?
区域编码及其应用
答:
确定图形中哪些部分落在显示区之内,哪些落在显示区之外,以便只显示落在显示区内的那部分图形。
这个选择过程称为裁剪。
常用的直线裁剪算法有:
Cohen_Sutherland算法和Liang_Barsky算法。
多边形裁剪算法有:
Sutherland_Hodgman算法和Weiler_Atherton算法。
区域编码:
1001
1000
1010
0001
0000
0010
0101
0100
0110
35.正确使用OpenGL有关几何变换、投影变换以及视图变换的预定义常量、函数及其参数。
36.Windows交互图形设计基本方法。
橡皮筋技术。
图元的选择两种类型。
答:
基本方法:
(1)交互式绘图
(2)坐标输入技术(3)橡皮筋技术
橡皮筋技术可用于交互式绘图以表现用户操作的过程细节。
实现橡皮筋技术主要有两种方法:
基于异或操作的橡皮筋技
术;基于缓冲区的橡皮筋技术;
图元的选择两种类型:
静态选择和动态选择。
37.生成真实感图形的步骤。
答:
构造各个物体的数学描述;
将各个物体安放在给定参考坐标系的三维空间中适当位置处,由此构成场景,并且选择所期望的观察场景的视点、视方向、视域;
给出各个物体的颜色信息;
将各个物体的数学描述和他们相关的颜色信息转化为屏幕上的像素信息。
38.什么是消隐?
消隐的分类。
为什么要消除隐藏线?
答:
通过判别当前观察方向的可见线和可见面,然后只显示可见线与可见面可以消除图形的二义性简称消隐。
分类:
消除隐藏线和消除隐藏面。
隐藏线的产生是因为在给定的观察方向下,某些棱(或棱的一部分)被表面多边形的遮挡成为不可见,因此要消除隐藏线
39.面消隐算法的分类(代表性算法)及每一类消隐算法的伪代码和时间复杂度计算。
答:
物空间算法:
for(场景中的每一个物体)
{
将其与场景中的其它物体比较,确定其表面的可见部分;
显示该物体表面的可见部分;
}
像空间算法
for(窗口内的每一个像素)
{
确定与此像素对应的距离视点最近的物体,
以该物体表面该处的颜色来显示像素;
}
40.提高消隐算法的方法有哪些?
答:
提高消隐算法的方法有:
利用连贯性、包围盒技术、背面剔除、区域分割技术、物体分层表示等。
41.包围盒有哪些要求?
答:
(1)包围盒充分紧密包围着形体;
(2)对其测试比较简单。
42.Z-Buffer算法的基本思想及特点、伪代码程序。
答:
基本思想就是在像素级上以近物取代远物,因此有利于硬件实现。
由于除了帧缓冲器外,还有一个Z缓冲器,因此Z缓冲器消隐算法的实现需要较多的存储空间。
伪代码程序:
for(各个多边形)
{
扫描转换该多边形;
for(多边形所覆盖的每个像素(x,y))
{
计算该像素所对应多边形上的点在观察坐标系下的z坐
标值Z(x,y);
if(Z(x,y)大于Z缓冲区在(x,y)处的值)
{
Z缓冲区中(x,y)处深度值替换为Z(x,y);
帧缓冲区中(x,y)处亮度值替换为多边形在(x,y)处的
亮度值;
}
}
}
43.影响观察者看到物体表面的颜色的因素。
答:
入射光、透射光和物体表面材质共同决定
44.什么是光照模型?
光照模型的理论基础是什么?
答:
建立数学模型模拟物体表面的光照明物理现象,按照数学模型计算物体表面向视线方向辐射进入人眼中的光亮度,即可获得像素所对应的物体上的可见点的颜色,这样绘制出来的图形具有较强的真实感,这些数学模型就称为明暗效应模型或者光照明模型。
理论基础是物体表面所呈现的颜色是由表面向视线方向辐射进入人眼中光决定的。
45.简单光照模型理论及其相关知识。
答:
46.Phong模型及其表达和特点。
答:
考虑环境光、漫反射和镜面反射,则物体表面的反射光亮度为:
实际上光的亮度与传播距离的平方成反比,Il为光源处的光亮度,光线抵达物体表面以及从物体表面反射进入观察者眼睛的过程中存在衰减的问题。
漫反射分量和镜面反射分量应该乘以一个衰减因子,以取得远的物体看起来暗些的效果。
当场景的投影变换采用透视投影时,Warnock提出线性衰减因子1/d,而Rommey提出衰减因子1/dp可以取得比较真实的效果。
此时Phong光照模型可以进一步描述为:
其中d是物体上当前考察点到视点的距离,K是一个任意的常量,
。
47.什么是走样和反走样?
常见的光栅图形的走样现象有哪些?
常见的反走样技术有哪些?
答:
在光栅显示器上显示直线段或曲线段时或多或少地呈现锯齿状。
原因用这有限个像素表示连续的直线段、曲线段就必须对直线段、曲线段进行采样,最终在光栅显示器上表示直线段或曲线段的只是一个个离散的有一定面积的像素。
这种用离散量表示连续量引起的失真现象称之为走样(aliasing)。
用于减少或消除这种失真现象的技术称为反走样(antialiasing)。
走样现象除了锯齿状的边界外,还有图形细节失真和狭小图形遗失等等。
反走样技术有:
提高采样率,也即提高屏幕分辨率;把像素看成一个区域,而不是一个点,进行区域采样。
48.纹理的分类及其相关定义
49.正确使用OpenGL有关深度消隐、光照、材质(不含纹理)相关的预定义常量、函数及其参数。
50.曲线和曲面设计方法的基本要求。
答:
避免高次多项式函数可能引起的过多拐点,曲线曲面设计宜采用低次多项式函数进行组合;组合曲线曲面在公共连接处满足一定的连续性;
绘图过程具有明确的几何意义,且操作方便;
具有几何不变性;
具有局部修改性,修改其中一点,不影响全局,只有很小范围内的形状受到影响。
51.直线的基本方程、参数方程及其优点、标准方程、法线式方程及其独特之处。
52.基本几何的统一描述。
通过圆弧曲线来描述任意曲线或者图形。
53.交点特征的含义及其几何意义。
重交点特征值的定义及其选择标准。
54.已知参数方程求曲线的交点,证明曲线具有C0,C1,C2,G1,G2连续
55.已知控制点求指定次数Bezier曲线的参数方程,并计算相关值。
56.图形的几何特征参数表示的优点。
答:
参数表示的优点:
1)以满足几何不变性的要求。
2)有更大的自由度来控制曲线、曲面的形状。
3)对曲线、曲面进行变换,可对其参数方程直接进行几何变换。
4)便于处理斜率为无穷大的情形,不会因此而中断计算。
5)便于用户把低维空间中曲线、曲面扩展到高维空间去。
6)规格化的参数变量t∈[0,1],使其相应的几何分量是有界的,而不必用另外的参数去定义边界。
7)易于用矢量和矩阵表示几何分量,简化了计算。
57.控制点、插值与逼近和拟合的基本概念定义。
答:
给定一组有序的数据点Pi,i=0,1,…,n,构造一条曲线顺序通过这些数据点,称为对这些数据点进行插值,所构造的曲线称为插值曲线。
拟合:
构造一条曲线使之在某种意义下最接近给定的数据点(但未必通过这些点),所构造的曲线为拟合曲线。
逼近通常指用一些性质较好的函数近似表示一些性质不好的函数。
在计算机图形学中,逼近继承了这方面的含义,因此插值和拟合都可以视为逼近。
58.曲线连续的要求在连接点处不同类型。
答:
位置连续;
斜率连续;
曲率相等且主法线方向一致。
59.n次的Bezier曲线参数公式和其基函数。
答:
参数公式:
基函数:
60.
Bernstein基函数的性质中非负性、规范性、对称性和递推性及其证明。
一次和二次Bezier曲线形式。
答:
非负性:
规范性:
证明:
由二项式定理可知:
对称性:
证明:
递推性:
61.掌握B样条曲线的定义。
物理样条的性质。