文档库

最新最全的文档下载
当前位置:文档库 > 计算机图形学基础教程

计算机图形学基础教程

第一章

1.计算机图形学的主要研究内容是什么?

答:计算机中图形的表示方法,以及利用计算机进行图形的计算、处理和显示的相关原理与算法,构成了计算机图形学的主要研究内容。图形硬件、图形标准、图形交互技术、光栅图形生成算法、曲线曲面造型、实体造型、真实感图形计算与显示算法,以及科学计算可视化、计算机动画、自然景物仿真、虚拟现实等。

2.列举三个以上图形学的应用领域。

答:计算机辅助设计与制造(CAD/CAM)、可视化、真实感图形实时绘制与自然景物仿真、计算机动画、用户接口、计算机艺术等。

3.一个图形系统通常由哪些图形设备组成?

答:一个图形系统通常由图形处理器、图形输入设备和图形输出设备构成。

4.图形和图像的区别是什么?

答:图像是指计算机内以位图(Bitmap)形式存在的灰度信息;图形含有几何属性,更强调物体(或场景)的几何表示,是由物体(或场景)的几何模型(几何参数)和物理属性(属性参数)共同组成的。

5.CRT显示器的原理是什么?

答:通过电子枪,将从阴极发射出大量电子,经过强度控制,聚集和加速,使其形成电子流,再经过偏转线圈的控制,快速的轰击显示器的荧光屏,从而使荧光屏上的荧光粉发亮。

6.LCD有哪些技术指标?

(1)可视角度(2)点距和分辨率(3)展望

7.有哪些常用的图形输入设备?

答:键盘、鼠标、光笔和触摸屏等。

第二章

1.描述直线扫描的DDA算法、中点画线算法和Bresenham算法,并用程序实现Bresenham算法。

答:直线扫描的DDA算法:

DDA算法原理是当直线的斜率在(-1,1)之间时,它的增量应该以x 为准,即每次都应该让x增加一个像素,然后计算出y的值(y值增量绝对值小于1,更精确),再进行四舍五入,最终得到实际点的像素。当直线斜率绝对值大于1时,增量应该以y为准。

中点画线算法: 假定直线斜率k在0~1之间,当前象素点为(xp,yp),则下一个象素点有两种可选择点P1(xp+1,yp)或P2(xp+1,yp+1)。若P1与P2的中点(xp+1,yp+0.5)称为M,Q为理想直线与x=xp+1垂线的交点。当M在Q的下方时,则取P2应为下一个象素点;当M 在Q的上方时,则取P1为下一个象素点。

Bresenham算法: 过各行、各列像素中心构造一组虚拟网格线,按直线从起点到终点的顺序计算直线各垂直网格线的交点,然后确定该列像素中与此交点最近的像素。

2.用中点画线发扫描转换从点A(1,0)到B(4,7)经过的直线段,并给出每一步的判别值。

解:由于A B直线的斜率k=7/3且k>1

我们将坐标进行交换,得到的k=3/7

就可以用书上的方法:

a=-3 b=7 d=1 d1=-6 d2=8

判别式随坐标的变化: x y d

0 1 1

1 1 -5

2 2 3

3 2 -3

4 3 5

5 3 -1

6 4 7

7 4 1

程序: x=1:1:4;

y=7/3*x-7/3;

a=[1 1 2 2 3 3 4 4];

b=0:7;

plot (x,y,'k',a,b,'*r')

title('MATLAB 图形')

xlabel('x=1:4')

ylabel('y=0:7')

grid

3.描述多边形扫描转换的扫描线算法,并写出伪码。

P26-27

4..字符串裁剪可按哪三个精度进行?

答:串精度,字符精度,笔画或像素精度。

5.为了在显示器等输出设备上输出字符,系统中必须装备有相应的字库。字库中存储了每个字符的形状信息,字库分为哪两种类型?各有什么特点?

答:字库分为矢量型和点阵型两种。P32

6.简述裁剪方法和中点裁剪方法的思想,并指出中点裁剪方法的改进之处及这种改进的理由。

答:(1)裁剪就是确定图形中哪些部分落在显示区之内,哪些落在显示区之外,最后只需显示落在显示区内的那部分图形,以便提高显示效率的过程。一般的裁剪方法是:先裁剪再扫描转换。(2)中点裁剪方法的思想是首先对线段端点进行编码,并把线段与窗口的关系分为三种情况,即在全在窗口内、完全不在窗口内和线段与窗口有交。对第一种情况,显示该线段;对第二种情况,丢弃该线段;对第三种情况,用中点分割法求出线段与窗口的交点,即从线段的一端的端点出发找出距该端点最近的可见点,并从线段的另一端点出发找出距该端点最近的可见点,两个可见点之间的连线即为线段的可见部分。(3)中点裁剪方法改进之处:对第三种情况,不直接解方程组

求交,而是采用二分法收搜索交点。这样改进的理由是:计算机屏幕的像素通常为 1024×1024,最多十次二分搜索即可到像素级,必然能找到交点,而且中点法的主要计算过程只用到加法和除2运算,效率高,也适合硬件实现。

7.是描述Liang-Barskey裁剪算法,并说明在什么情况下它比中点法和Cohen-Sutherland快及原因。

答:(1)设要裁剪的线段是P0P1。 P0P1和窗口边界交于A,B,C,D 四点,见图。算法的基本思想是从A,B和P0三点中找出最靠近的P1点,图中要找的点是P0。从C,D和P1中找出最靠近P0的点。图中要找的点是C点。那么P0C就是P0P1线段上的可见部分。(2)梁友栋-Barsky算法只能应用于矩形窗口的情形。通常梁友栋-Barsky算法比Cohen-Sutherland算法效率更高,因为需要计算的交点数目减少了。更新参数u1、u2仅仅需要一次除法;线段与窗口边界的交点仅计算一次,就计算出u1、u2最后的值。相比之下,即使一条线段完全落在裁剪窗口之外,Cohen-Sutherland算法也要对它反复求交点,而且每次求交计算都需要做乘除法。

计算机图形学基础教程

8.解释走样及反走样的概念,并描述反走样的主要方法。

答:用离散量表示连续量引起的失真现象称为走样,用于减少或消除这种效果的技术称为反走样。反走样的主要方法有三种:(1)提高分辨率,把显示器分辨率提高一倍,直线经过两倍的像素,锯齿也增加一倍,但同时每个阶梯也减少了一倍,所以显示出的直线看起来就平直光滑了一些。增加分辨率虽然简单,但不是经济的方法,而且它也只能减轻而不能消除锯齿问题。(2)区域采样,区域采样方法假定每个像素是一个具有一定面积的小区域,将直线段看做具有一定宽度的狭长矩形。当直线段与像素有交时,求出两者相交区域的面积,然后根据相交区域面积的大小确定该像素的亮度值。(3)加权区域采样,使相交区域对像素亮度的贡献依赖于该区域与像素中心的距离。当直线经过该像素时,该像素的亮度F是在两者相交区域A、上对滤波器进行积分的积分值。

9.描述消隐的扫描线Z-Buffer算法,并与其他两种Z-Buffer算法进

行比较。

答:(1)算法的思想描述:在处理当前扫描线时,开一个一维数组作为当前扫描线的Z-Buffer。首先找出与当前扫描线相关的多边形,以及每个多边形中相关的边对;然后计算每个边对之间的小区间上各像素的深度,并与Z-Buffer中的值相比较,找出各像素处对应的可见平面,计算颜色,写帧缓存。对深度计算,采用增量算法。(2)与Z-Buffer算法相比,扫描线Z-Buffer算法做了如下两点的改进。

一、将整个绘图窗口内的消隐问题分解到一条条扫描线上解决,使所需的Z缓存器大大减少。

二、计算深度值时,利用了面的连贯性,只用了一个加法。但它在每个像素处都计算深度值,进行深度比较。因此,被多个多边形覆盖的像素区处还要进行多处计算,计算量仍然很大。

10.比较书中举例的几种消隐算法的优缺点

答:常见的面消隐算法有:画家算法、Z缓冲区(Z-Buffer)算法、扫描线Z-buffer算法、扫描线算法、区域子分割算法、光线投射算法等。

Z缓冲区算法是一种典型的、也是最简单的图象空间的消隐算法。另一个优点是算法便于硬件实现,并可以并行化。

缺点:1)需要一个额外的Z缓冲器2)在每个多边形占据的每个像素处都要计算深度值,计算量大3)没有利用图形的相关性与连续性。画家算法它的缺点是只能处理互不相交的面.扫描线算法和Z—buffer算法的缺点是,对于不可见的多边形面片了同样画出,这样

造成了绘制过程中不必要的费时。BSP树算法利用它的存储结构可以优化多边形的排序过程,故它的排序速度比画家算法要快,尤其是复杂度高的场景。

第三章

1.参数曲线曲面有几种表示形式?

(1)代数形式一条三次曲线的代数形式是:

(2)几何形式

描述参数曲线的条件有:端点位矢、端点切矢、曲率等。

计算机图形学基础教程

上式是三次Hermite(Ferguson)曲线的几何形式,F0,F1,G0,G1称为调和函数(或混合函数)

有参数和非参数(显式、隐式)表示

2.设有控制顶点为P0(0,0),P1(48,96),P2(120,120),P3(216,72)的三次Bézier 曲线P(t),试计算P(0.4)的(x,y)坐标,并写出(x(t),y(t))的多项式表示。

计算机图形学基础教程

3.设一条二次Bezier曲线的控制顶点为P0、P1和P2,另一条二次Bezier曲线的顶点是Q0、Q1和Q2, 写出两条曲线精确合并成一条二次Bezier曲线的条件。

计算机图形学基础教程

4.已知Bezier曲线上的4个点分别为Q0(50,0),Q1(100,0),Q2(0,50)和Q3(0,100),它们对应的参数分别为0,1/3,2/3,1,反求Bezier 曲线的控制点。

计算机图形学基础教程

5.设一条三次Bézier曲线的控制顶点为P0,P1,P2,P3。对曲线上一点P(0.5),及一个给定的目标点T,给出一种调整Bézier曲线形状的方法,使得P(0.5)精确通过点T。

根据Bézier曲线的递推算法,构造过程:

计算机图形学基础教程

6.计算以(30,0),(60,10),(80,30),(90,60),(90,90)为控制顶点的4次Bézier 曲线在t=1/2处的值,并画出de Casteljau三角形。

计算机图形学基础教程

7.给定三次Beizer曲线的控制顶点(1,0),(1,0,100),(100,0),(100,100),计算升阶一次后的控制顶点。

计算机图形学基础教程

计算机图形学基础教程

8. 用de Boor算法,求以(30,0),(60,10),(80,30),(90,60),(90,90)为控制顶点,以T=[0,0,0,0,0.5,1,1,1,1]为节点向量的三次B样条曲线在t=1/4处的值。

计算机图形学基础教程

计算机图形学基础教程

9.试证明n次Bezier曲线退化为n-1次Bezier曲线的条件为△nP0=0。

计算机图形学基础教程

10.NURBS曲线的凸包性指什么?

计算机图形学基础教程

11.Q,Q1,Q2,S1,S2是平面上的5个点。请设计一条均匀三次B 样条曲线,使曲线经过这5个点,且满足如下设计要求:

(1)在Q1,Q2点与Q Q1,Q Q2相切;

(2)分别在Q,Q1和Q,Q2间生成一段直线段;

(3) 在Q是一尖点。

计算机图形学基础教程

计算机图形学基础教程

12.常见的曲面、曲面求交方法有哪些?原理是什么?

答:1)代数方法。代数方法是利用代数运算,特别是求解代数方程的方法求出曲面的交线。2)几何方法。几何方法求交是利用几何的方法,对参与求交的曲面的形状大小、相互位置以及方向等进行计算和判断,识别出交线的形状和类型,从而精确求出交线。

3)离散方法离散方法求交是利用分割的方法,将曲面不断离散成较小的曲面片,直到每一子曲面片均可用比较简单的面片来逼近,然后用这些简单面片求交得一系列交线段,连接这些交线段即得到精确交线的近似结果。

4)跟踪方法。跟踪方法求交是通过先求出初始交点,然后从已知的初始交点出发,相继跟踪计算出下一交点,从而求出整条交线的方法13.用几何法求平面和球的交线。

答:可按以下步骤求解:

(1)求球心到平面的距离,设为d,交点(投影点)为P;

(2)设球的半径为r,若r

(3)若r=d,则平面与球相切,切点为P;

(4)若r>d,则平面与球相交,交线为圆,圆心为P,半径为

计算机图形学基础教程

14.形体表示有哪些常见的方法?

P94

15.网格简化时如何度量删除一个顶点的误差?

P118