1、计算机图形学的相关学科有哪些?它们之间的相互关系怎样?
与计算机图形学密切相关的几门学科有:图像处理、模式识别、计算几何。它们研究的都是与图形图象处理有关的数据模型、图象再现的内容,它们相互结合、相互渗透。
2、图形系统的任务是什么?
图形系统的任务是:建立数学模型、视像操作、图形显示。
3、计算机图形学的主要研究内容是什么?
计算机图形学是研究通过计算机将数据转换为图形,并在专门的设备上输出的原理、方法和技术的学科。
4、举出六种你所知道的图形输出设备。
光栅扫描显示器、随机扫描显示器、直视存储管显示器、激光打印机、笔绘仪、喷墨绘图仪、静电绘图仪等。
5、什么叫刷新?刷新频率与荧光物质的持续发光时间的关系如何?
屏幕上的荧光涂层受到电子束打击后发出的荧光只能维持很短的时间,为了使人们看到一个稳定而不闪烁的图形,整个画面必须在每秒钟内重复显示许多次,这也称为屏幕刷新。
刷新频率与荧光物质的持续发光时间成反比,即荧光物质的持续发光时间越长,刷新频率可以低一些;否则,荧光物质的持续发光时间越短,刷新频率必须高。
6、随机扫描显示器和光栅扫描显示器显示图形有什么不同?它们各自依靠什么对屏幕图形进行刷新的?
随机扫描显示器显示图形时,电子束的移动方式是随机的,电子束可以在任意方向上自由移动,按照显示命令用画线的方式绘出图形,因此也称矢量显示器。而光栅扫描显示器显示图形时,电子束依照固定的扫描线和规定的扫描顺序进行扫描。电子束先从荧光屏左上角开始,向右扫一条水平线,然后迅速地回扫到左边偏下一点的位置,再扫第二条水平线,照此固定的路径及顺序扫下去,直到最后一条水平线,即完成了整个屏幕的扫描。
随机扫描显示器依靠显示文件对屏幕图形进行刷新;光栅扫描显示器则依靠帧缓存实现对屏幕图形的刷新。
7、光栅扫描显示系统为什么要采用彩色表?隔行扫描的优点是什么?
对于光栅扫描显示系统,为了显示很多种颜色,帧缓存的容量就要很大。但实际上对一幅具体的画面而言,其使用的颜色数目并不多(几百至几千种)。为了解决帧缓存容量不能过大而又满足实际需要,产生了彩色表。采用彩色表后,一幅画面实际使用的颜色值放入彩色表,而帧缓存各单元保存的不再是相应象素的颜色值,而仅是该象素颜色的一个索引,它是彩色表的某个入口地址。
隔行扫描只需用逐行扫描一半的时间就能看见整个屏幕显示,因此隔行扫描技术用于较慢的刷新频率。
8、帧缓存的容量与什么有关?假定一个光栅扫描系统,分辨率800×600,要求可显示颜色256种,请问帧缓存的容量需要多少字节?
帧缓存的容量与分辨率和颜色的位数有关,如果颜色数目为1024,即
2n=1024,那么:帧缓存的容量=分辨率×n(bit)。
一个光栅扫描系统,分辨率800×600,要求可显示颜色256种,帧缓存的容量9、考虑分辨率为640×480和1280×1024的两个光栅系统。若刷新频率为每秒60帧,请问各个系统每秒钟应访问多少个象素?各个系统每个象素访问的时间又是多少?
对于分辨率为640×480的光栅系统,当刷新频率为每秒60帧时,每秒钟访问的象素个数为:60×640×480。每个象素访问的时间是:1÷(60×640×480)(秒);
而对于分辨率为1280×1024的光栅系统,当刷新频率为每秒60帧时,每秒钟访问的象素个数为:60×1280×1024。每个象素访问的时间是:1÷(60×1280×1024)(秒)。
10、与随机扫描显示系统相比,光栅扫描显示系统有哪些优点?
光栅扫描显示器最突出的优点是:它不仅可以显示物体的轮廓线,而且由于能对每一象素的灰度或色彩控制,因而可以进行实面积填充,这就使得输出真实感图形成为可能。此外,它可以和电视兼容,价格远低于随机扫描显示器。
1、对直线的扫描转换算法有哪些要求?
对直线的扫描转换算法的要求是:准确地逼近理想直线、沿着线段分布的象素应均匀、画线速度应该快。
2、什么是光栅图形的扫描转换?
光栅图形的扫描转换,就是要找出显示平面上最佳逼近理想图形的那些象素的坐标值,并将这些象素置成所要求的颜色。
3、矢量字符和点阵字符在计算机内是如何进行编码存储的?
矢量字符在计算机内保存的是字符的笔画信息,即笔画的两端点坐标和端点间是否连线的标志;而点阵字符存储的是按行或按列进行的点阵编码。
4、用扫描线种子填充算法,写出图中顺序进栈的种子坐标及所需最大栈空间。
顺序进栈的种子坐标为:
(1,2)、(2,3)、(2,1)、(4,4)、(2,4)
所需最大栈空间为:2
5、用边相关扫描线填充算法,对图中多边形建立ET、AET表。
6、假如多边形顶点坐标放入二维数组,编一段代码,绘出该多边形(闭合)。
static int p[6][2]={10,10,30,20,50,10,60,40,20,50,10,10},i,n=6;
…
for(i=0;i line(p[i][0],p[i][1],p[(i+1)%n][0], p[(i+1)%n][1]); … 7、如果用图案填充一块区域时,填充算法应该增加哪些步骤? (1)首先要定义一个图案掩膜数组(存放图案位图); (2)然后对找到的区域内点p(x,y)进行坐标系的变换,变换到图案坐标系p'(x',y')。假如定义的图案是n×n点阵,则: x'=x % n y'=y % n (3)最后根据p'(x',y')取出图案位图的值,来决定该内点应填上什么颜色。 第三章二维图形的裁剪 (主观题) 1、裁剪的目的是什么?什么是内(外)裁剪? 裁剪的基本目的是判断某个图形元素是否落在窗口边界之内,如落在窗口边界之内则进一步求出位于窗口边界内的部分,而将窗口边界外的部分“裁掉”。 内裁剪即保留裁剪窗口内的图形。而外裁剪则保留裁剪窗口外的图形。 2、一个矩形窗口对一个有n个顶点的凸多边形进行裁剪。裁剪后的多边形最多有多少个顶点?最少则有多少个顶点? 最多有2*n个顶点;最少则有n个顶点。 3、已知窗口左下角坐标(200,200),右上角坐标(400,400),用Cohen-Sutherland直线裁剪算法对端点为P1(350,100)、P2(600,300)的直线进行编码,并根据编码决定该直线是简单接受、简单裁掉、还是需要进一步求直线与窗口边界的交点? 如图所示,P1编码为C1(0100),而P2编码为C2(0010)。 根据编码C1 = C2 = 0不成立,该直线不能简单接受; 根据编码C1 & C2 != 0不成立,该直线不能简单裁掉; 因此该直线还需要进一步求直线与窗口边界的交点。 4、用Sutherland-Hodgman算法,将图中多边形相对矩形窗口右边界进行裁剪。要求: a、画出裁剪后的示意图。 b、写出裁剪后形成的新顶点顺序号。 如图所示,新的顶点顺序号为:0、1、2、3、4。 5、用中点分割算法求直线与窗口边界的交点时,假如直线的长度为64,那么求交次数是多少? 求交次数是8。因为求交次数n与直线长度L的关系是L=2n。 6、Sutherland-Hodgeman多边形裁剪中,常用向量叉积法来测试当前点P是否在边界内侧。已知窗口边界A(30,100)、B(40,180),某点P(50, 300),请问点P 在边界内侧吗? 计算V = (x B-x A)·(y-y A)-(x-x A))·(y B-y A) =(40-30)·(300-100)-(50-30))·(180-100) =400 因为V > 0时,所以P在边界外侧。 1、举出六种你所知道的图形输入设备。 扫描仪、数字化仪、光笔、鼠标、触摸屏、操纵杆、跟踪球、数码相机。 2、为什么要引入逻辑输入设备的概念? 图形系统使用逻辑输入设备的概念来减少系统对物理设备的依赖性,提高系统的独立性和灵活性。 3、哪些物理设备是绝对定位设备? 如数字化仪和触摸屏,都有绝对坐标原点,输入给计算机的是相对于坐标原点的位置坐标,因此是绝对定位设备。 4、笔划设备与定位设备有什么不同? 定位设备用来输入一个位置坐标(x,y),而笔划设备则用于输入一系列位置坐标,因此笔划设备可以看成是对定位设备的连续调用。 5、用于字符串输入的设备或方法有哪些? 最常用的字符串输入的设备是键盘,另外手写体识别输入及语音识别输入也是极有前途的字符串输入方法。 6、定值设备向图形系统输入数值。说说你所见过的输入数值的设备及方式。 用键盘直接输入; 用鼠标拖动:刻度盘、滑杆、刻度盘、标尺,或用鼠标点击按钮(定值+-按钮)、下拉列表(一组固定的值供选择)、标尺等进行快捷直观的输入。 7、常用的交互技术有哪些? 常用的交互技术有:对话框、橡皮筋技术、约束技术、网格技术、引力场技术、拖动技术、操作柄技术、菜单技术等。 1、一般图形变换都采用齐次坐标变换来实现,为什么? 在非齐次坐标系中做图形变换,比例和旋转变换都是作矩阵乘法,而平移变换作的是矩阵加法,若使用齐次坐标来实现图形变换,则各种变换都将统一使用乘法运算来实现,这样有利于各种变换的组合运算。 2、为什么说在复合变换中,矩阵的组合特性是矩阵乘法满足结合律,不满足交换律? 所谓矩阵乘法满足结合律,就是指对任何三个矩阵A,B,C,矩阵积A?B?C 可先将A和B相乘或先将B和C相乘来完成:A?B?C=(A?B)?C=A?(B?C)。因此,我们既可从左到右也可从右到左进行矩阵相乘。 所谓矩阵乘法不满足交换律,是指变换积一般不可交换,矩阵乘积A?B不等于B?A。这意味着要平移和旋转物体,必须注意复合矩阵求值的次序。 3、什么是二维观察变换?该变换过程是什么? 二维观察变换就是把用户坐标系中窗口的图形变换到显示器的视口中以产生显示。设用户先选定的窗口范围为(wxl,wyl)和(wxr,wyr),视口范围为(vxl,vyl)和(vxr,vyr)。 将窗口中的图形转为视口的过程:先平移窗口使其左下角与坐标系原点重合,再比例变换使其大小与视口相等,最后再通过平移使其移到视口位置,窗口中的全部图形经过与此相同的变换后便成视口中的图形了。 4、什么是三维观察变换?该变换过程是什么? 三维观察变换所起的作用是完成从用户空间选取的一部分物体描述变换到显示屏上指定的视口中的图形描述。从用户的图象描述产生显示器上的图形描述的处理过程是: (1)取景变换和规范化视见体变换:取景变换即是完成从用户坐标系中的描述到观察坐标系中的描述的坐标变换,主要包括观察平面的确定(即指定观察坐标系)和用户坐标到观察坐标的变换。为使剪取处理简单和规范化(即单位化),需要利用坐标变换将视见体规范化。 (2)三维剪取:其作用是仅保留在视见体内的物体部分并对它生产图形显示。 (3)投影变换:将视见体内的三维物体描述变换成投影平面上的二维图形描述。 (4)二维观察变换:将投影平面上矩形窗内的图形变换到显示器(或规范化)坐标中的视口内。 1、什么是投影变换? 从三维物体模型描述到二维图形描述的转换过程称为投影变换。确切地说,投影变换就是从空间选定的一个投影中心和物体上每点连直线从而构成了一簇射线,射线与选定的投影平面的交点集便是物体的投影。 2、投影变换的分类有哪些?都各有什么特点? 投影变换主要分为平行投影和透视投影两类,平行投影与透视投影间的区别在于投影线是相互平行还是会聚于一点;平行投影分为正平行投影和斜平行投影,正平行投影与斜平行投影的区别在于投影线是否与投影平面垂直;正平行投影又分为正投影和正轴测投影,正投影与正轴测投影的区别在于投影线是否与某个坐标轴平行;在正轴测投影中,投影线与各坐标轴夹角相等,投影线与各坐标轴夹角中有两个相等则是正二轴测投影,投影线与各坐标轴夹角全不相等则是正三轴测投影;在斜平行投影中,斜等测投影和斜二测投影中投影线与投影平面间所成角度分别是45度和arctg(2)(约为63.4度);透视投影中的一点、两点和三点透视的划分则是根据主灭点的个数(也就是与投影平面相交的坐标轴的个数)。 1、曲线拟合的实质是什么?主要有哪几种方式? 曲线拟合是利用假想为曲线(或接近它们的)一组离散点,寻找形式比较简单、性能良好的曲线的解析式。曲线拟合有两种方式:插值方式与逼近方式,前者所得到的曲线通过原先给定的离散点;而后者的曲线与所给的离散点相当“接近”。 2、拉格朗日插值曲线中控制点的个数和多项式的次数有什么关系? 拉格朗日插值曲线的多项式的次数比控制点的个数少一。 3、三次样条曲线的曲线段和控制点个数有什么关系? 三次样条曲线的曲线段的个数比控制点个数少一。 4、贝齐尔曲线几何作图法的优点是什么? 贝齐尔曲线几何作图法的优点是避免了多项式的高次运算计算。 5、与贝齐尔曲线比,B样条曲线有什么优点? 与贝齐尔曲线比,B样条曲线的优点是生成的曲线与控制多边形的外形更接 近;具有局部控制的特性;整体上有一定阶数的连续性。 1、三角形平面的顺序三个顶点为:(3,2,4),(2,3,1),(2,1,3),用矢量的叉积法求出平面的法矢量。 已知:P1(3,2,4)、P2(2,3,1)、P3(2,1,3), 法矢量n{A,B,C},而三个方向分量为: A=(y1-y2)(z1+z2)+(y2-y3)(z2+z3)+(y3-y1)(z3+z1) =(2-3)(4+1)+(3-1)(1+3)+(1-2)(3+4) =-4 B=(z1-z2)(x1+x2)+(z2-z3)(x2+x3)+(z3-z1)(x3+x1) =(4-1)(3+2)+(1-3)(2+2)+(3-4)(2+3) =2 C=(x1-x2)(y1+y2)+(x2-x3)(y2+y3)+(x3-x1)(y3+y1) =(3-2)(2+3)+(2-2)(3+1)+(2-3)(1+2) =2 所以法矢量n{-4,2,2},也可写成:-4i+2j+2k。 2、在上题的基础上,试求出三角形的平面方程。 已知:P1(3,2,4)、P2(2,3,1)、P3(2,1,3), 法矢量n的三个方向分量:A=-4、B=2、C=2。 平面方程:Ax+By+Cz+D = 0 这里:D = -(Ax0+By0+Cz0),而(x0,y0,z0)为平面上任一点。 假设(x0,y0,z0)为P1(3,2,4),则: D= -(-4×3+2×2+2×4) = 0 所以平面方程为:-4x+2y+2z = 0 即:-2x+y+z = 0 3、任意多面体消隐处理的对象有哪些? 任意多面体消隐处理的对象有: 凸多面体、凹多面体、任意形状的平面立体(组合体)。 4、在z缓冲器算法中,场景里有很多多边形,算法是如何处理每个多边形内点的深度值z,并将可见点进行显示的? (1)对场景中的所有潜在可见面进行登记(去掉朝后面)。 (2)初始化两个缓冲器: 帧缓冲器置为背景色; 深度缓冲器置为最小值(假设视点在z轴正向无穷远处,视线方向朝着z轴负向,离观察者近时z值大;反之,z值小)。 (3)对登记的每个潜在可见面进行扫描转换,按行、按列对内点的z值进行计算。 按列处理的公式为:(8-13) 按行处理的公式为:(8-15) 对于每条扫描线,首先根据公式(8-15)计算出与其相交的多边形最左边的交点所对应的深度值,然后,该扫描线上所有的后续点由(8-13)式计算出来。 (4)根据某点的深度值,如果z值大于深度缓冲器中该点的z值,则改写深度缓冲器,并用某点所在片面的颜色值改写帧缓冲器。 (5)所有的可见面处理完后,深度缓冲器中存放的是所有面中的最大z值,帧缓冲器里存放的是可见面的颜色值。屏幕上则显示的是场景中所有的可见面。 5、扫描线消隐算法的边表(ET)、(AET)与多边形填充中介绍的边表(ET)、(AET)有哪些不同?为什么? 扫描线消隐算法的边表(ET)结构为: 它对投影到屏幕上的这些多边形的所有非水平边建立ET表,ET表包含:(1)ymax─该边最大的y值。 (2)x─具有较小y坐标值一端的x值,即端点(x,y min)。 (3)1/m─该边斜率的倒数。 (4)ID─该边属于哪个多边形的标志码。 (5)z─该多边形x对应点处的深度值。 (6)dz x─该多边形深度沿x轴方向的增量,见公式(8-13)。 (7)dz y─该多边形深度沿y轴方向的增量,见公式(8-15)。 不同于多边形填充中介绍的边表(ET),扫描线消隐算法的边表多出了四项: ID、z、dz x、dz y,它们分别如上面所介绍。 因为消隐中对若干面进行处理,因此ID的引入,便于对所处理的多边形进行标识,有关该面的详细信息,通过ID号进入相应的多边形表(PT)然后去改变该多边形的进出标志。 另外增加的三个有关深度的参项,如果扫描线经过多边形投影相互覆盖区域时,就要根据z值进行选择,z值大的,离观察者近,则对该区进行显示。