当前位置:
文档之家› 本科生图形学试卷(此卷以算法为主)
本科生图形学试卷(此卷以算法为主)
= a*(xi+1+1) +b*( yi+1+0.5)+c- [a*(xi+1) +b*( yi+0.5)+c] = a+b 当 di>=0, yi+1= yi+1 ; =a 当 di<0, yi+1= yi ; 为了保持整数运算,将 d*2,有: 初值:x = x0 ; y = y0 ; d =b+2*a; ⊿d=di+1-di= F(xi+1+1,yi+1-0.5)- F(xi+1,yi-0.5) = 2*a+2*b 当 di>=0, yi+1= yi+1 ; = 2*a 当 di<0, yi+1= yi ; 推毕。
A.二次 B 样条算法简述: 分 n-2 段,每段细分 count 段直线段。 参数:P[i]—控制顶点坐标,n—顶点数,count—直线段数 MoveTo((p[0] +p[1])/2); for(i=0; i<=n-2; i++)//画 n-2 段 { for(j=1; j<=count; j++)//画一段 { t = j/count ; q = ((t*t-2*t+1)*p[i].x+(-2*t*t+2*t+1)*p[i+1]+t*t*p[i+2])/2 ; LineTo(q) ; }} B.算法简述: 经一次分割算法,原 Pi 分割为二段 Bezier 曲线。 参数:Pi—控制顶点坐标,n—顶点数,k—递归次数 #define MAX 50 void SplitBezier(float p[][2], int n, int k) { float q[MAX][2]; int i, j ; for(i=0;i<=n;i++) { q[i][0]=p[0][0]; q[i][1]=p[0][1]; for(j=0;j<n-i; j++) { p[i][0]=(p[i][0]+p[i+1][0])/2 ; p[i][1]=(p[i][1]+p[i+1][1])/2 ;}} if (k>0){ k-- ; SplitBezier(p, n, k) ; SplitBezier(p, n, k) ; } else { DrawBezier(p, n); DrawBezier(p, n); }} void DrawBezier(float p[][2], int n) { moveto(p[0][0], p[0][1]) ; for( int i=0; i<=n; i++) lineto([i][0], p[i][1]) ; }
解答:1、答案见上。 评分标准:共 1 分,有一标错扣 1 分。 2、答案见上述第 2 题填空部分。 评分标准:共 4 分,每空格 1 分 第四空,标 AB 或 KL,或二者均得分,多标 GH 不扣分。 3、答案为算法分二步: 第一步:先编码判断完全可线段和完成不可见线段 求出各线段的二端点的编码 C1、C2; 若 C1=C2=0000 ,线段完全可见; 若 C1&C2≠0000 ,线段完全不可见; 否则, 第二步求不可见部分时,可选以下三种算法之一: P4 a) Cohen-Sutherland 算法: 1) 对二端点编码中为 1 的边,直接计算直线与该边交点,求可见部分; 2) 余下的可见部分重复 1) ,直到所有编码为 1 的求可见部分结束。 3) 最后余下部分为可见部分。 b) Liang-Barsky 算法: 1) 求线段与窗口上、下平行线的交点,记为(t0,t1); 2) 求线段与窗口左、右平行线的交点,记为(tt0,tt1); 3) 可见线段部分为:[t’,t”],其中,t’=max{0,t0,tt0},t”=min{1,t1,tt1} 且 t’<t”。 评分标准:共 6 分 1) 第一步未做,扣 2 分;计算交线部分 4 分。 2) Liang-Barsky 算法中若未注明 t’<t”,扣 1 分; 3) a)和 c)算法中,未提所有编码为 1 的,扣 1 分。 4) 叙述不准确或有误,视情扣分。 4、根据描述的算法给出相应的图示。
四、 线段裁剪算法(14 分) Cohen-Sutherland 窗口裁剪算法,当取编码顺序为(Ct,Cr,Cb,Cl)时: 1、给出线段 GH 二端点的相应编码 0010 、0100;(1 分) 2、(4 分)当满足条件:C1=C2=0000,线段完全可见;下列线段中有:EF 当满足条件:C1&C2≠0000,线段完全不可见;下列线段中有:KL、AB 3、给出判断可能部分可见线段的 Liang-Barsky 或 Cohen-Sutherland 算法的算法 描述;(6 分) 4、根据上述算法图示计算线段 CD 的可见部分计算过程,给出判断结论。(3 分)
评分标准:推导共 3 分
a) 列出中点算法判别式,得 1 分。 b) 推导中点算法递推式,得 2 分。 c) 扣分视完整性定。 2) 、算法描述: 1、置初值: x=x0 ; y=y0 ; d=a+2*b ; 画(x,y) 2、终止条件:while(x<x1) 3、递推: { if (d>=0) { d = d+2*(a-b); y=y+1; } else d = d+2*a ; x=x+1; 4、画点: (x,y); }
评分标准:共 5 分
扣分视完整性定。 第 2 页 共 4 页
3、给出下列控制多边形,请分别画出 Bezier 曲线、二次 B 样条曲线、三次 B 样条 曲线,并标出端点切向量。控制多边形如下:(6 分)
P3 P2 P4
P3
算法描述: (栅栏填空算法) 参数:多边形顶点坐标 P[i],多边形点数 n,color—填空色 1. 取多边形任一顶点,记为(X,Y)作垂直栅栏; 2. 遍历多边形所有边; 3. { 遍历边上所有点; { 从此点至垂直栅栏,判断各点; 若为已画点:则取销该点,否则画该点,即求余; }
扣分视完整性定。 1、算法描述: a)对图形进行平行投影或透视投影变换 用数组 Z-Buffer(,x,y)保存当前填色点的最大 Z 值; Color(x,y)保存当前颜色值; b)数组初始化:Z-Buffer(x,y)=Zmin;Color(x,y)=背景色; c)遍历所有多边形面(次序无关) { 判断面法向量与视线夹角,若为锐角,则不可见;若为钝角,则为可见。 if (面为可见) { 扫描转换该多边形; for (多边形中每个像素(x,y)) { 多边形中和每个像素的深度值 z(x,y); if (z(x,y)>Z-Buffer(x,y)) { Z-Buffer(x,y)= z(x,y); Color(x,y)=(x,y)点的颜色 ;}]} 评分标准:共 8 分 a) 部分未叙述,扣 1 分; b) 部分不准确,扣 2 分; c) 部分循环条件不准确,扣 2 分; d)循环体核心部分错误扣 4 分.
(6)
评分标准:算法部分为 6 分,扣分视完整性定。
算法部分为 4 分,扣分视完整性定。
七、 (每小题 5 分)二维图形变换:(写出相应每步的加边矩阵)
1. 在二维坐标 Oxy 中,求关于对称轴 y=
2 2
x 的对称变换。
P1 P2
2.求对于下面左图变换到右图变换矩阵。 D (0,1) D’(1,2)
评分标准:每选 1 分(第 1 题 2 分) ,未选或选错均扣分。 三、 (10 分)直线点生成的中点算法(条件为 x1-x0>y1-y0>0) 1、推导直线点生成中点算法; 分) (3 2、算法描述直线的点生成的中点算法; 分) (7
评分标准: a) 算法描述共 7 分。初始条件:2 分,递推式 3 分,中止条件 1 分,画 1 分。 b) 画圆改圆填色 2 分。 c) 扣分视完整性定。
九、 (10 分) 算法描述 Z 缓冲区面消隐算法(深度缓冲区算法) ,并逐步图示下面图 形的面消隐过程。
第
4 页
共 4 页
第 3 页
C’(2,2)
共 4 页
P5
P4
A(-1,0)
C(1,0) A’(0,0) B(0,-1) B’(1,0)
评分标准:每一小题各 5 分
扣分视完整性定。
八、 (每小题 5 分)三维图形变换:(写出相应每步的加边矩阵) 1.整体放大 1/2 倍,再透视投影到 Y-Z 平面,视点为(0,10,0),视线为 Y 轴。 2.以点 P(3,-1,2)为中心的 X、Y、Z 向分别缩放 2、-3、1/4 倍,并投影到 Y-Z 平 面。 评分标准:每一小题各 5 分
第 1 页 ቤተ መጻሕፍቲ ባይዱ 4 页
J D
K L
评分标准:共 3 分 结果错扣 2 分,图示不正确或有误,视情扣分。
五、 (16 分) Bezier 曲线与 B 样条曲线: A E C B 0010 G I F 0100 H 1、B 样条的非均匀周期性结点向量(t0,t1,…,tn,…,tn+k)的取法中有二个特例: (4 分) 当结点向量为 0,0,1,2,3,…,n,n 时,特例为 控制多边形 ; 当结点向量为 0,0,0, 0,1,1,1,…1 时,特例为 Bezier 曲线 ; 2、算法描述二次 B 样条曲线的生成算法;或算法描述 Bezier 曲线的递归分裂作图 算法。 (二选一,6 分)
一、 (12 分,每小题 4 分)简述题 1. 简述 CRT 显示器工作原理,并说明帧缓冲区与显示器分辨率间的关系。 2. 选做一题: a)简述汉字库的数据保存形式及用途。 b)图形学算法在 3DAMX 或其它图形软件中的应用。 3. 举例说明三种图形输入输出设备及其用途。 评分标准:每选 4 分,未选或选错均扣分。 二、 (8 分)判断题(请在后面括号中打√或× : ) 1. 2. 3. 4. 5. 6. 7. 8. 若帧缓冲区大小一定,则屏幕分辨率与最大颜色数成正比。 许多图形算法可由硬件实现,而硬件图形算法不可由软件实现。 k 阶 B 样条曲线随着控制顶点的增加,会导致曲线次数的增加。 汉字显示点阵字库与打印点阵字库是一样的。 齐次坐标系不可以表示坐标轴的无穷远点。 二平行直线经线性变换后仍然平行。 Bezier 曲线和均匀结点 B 样条曲线都具有对称性。 单凸多面体的消隐只要判断面的外法向与视线的夹角关系即可。 ( ×) ( ×) (× ) ( ×) ( ×) ( √) (√) (√)