计算机图形学考试题_第1页
计算机图形学考试题_第2页
计算机图形学考试题_第3页
计算机图形学考试题_第4页
计算机图形学考试题_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一 请给出全象限整型Bresenham直线段生成算法的C语言描述。(20分) 二 构造空间变换T,使过原点的任意轴(A,B,C)与Y轴正向对齐。 变换次序为先绕X轴顺时针旋转,再绕Z轴逆时针旋转。 (20分)三 简述画家消隐算法的基本原理,并给出处理流程框图。 (20分)四 已知二维空间窗口为(Wleft, Wbotton)-(Wright, Wtop), 空间裁剪采用端点编码 方式实现,请给出您的端点编码设计方案及空间任意点(x,y)的编码C函数:int pCode(int x, int y) 描述。 假设已知直线段P1P2的两端点编码分别为P1code和P2code,请问直线段 完全可见的

2、充要条件是什么?完全不可见的充分条件是什么?部分可见的分条件又是什么?并给出相应的C描述。 (20分) 五 已知由空间两特征多边形P1(0,0,0), P2(2,2,-2), P3(2,-1,-1), P4(4,0,0)和 Q1(4,0,0), Q2(6,-2,1), Q3(8,-3,2), Q4(10,0,1)确定两段三次Bezier曲线。请给出两段曲线在分段点P4(Q1)处达到G1连续的解析条件。 (20分)答案:一、void Bline(int x1, int y1, int x2, int y2) int x, y, dx, dy, temp, xSign, ySign, interc

3、hange; interchange = 0; x = x1; y = y1; dx = abs(x2 x1); dy = abs(y2 y1); xSign = (x2 x1) ? 1 : -1; ySign = (y2 y1) ? 1 : -1; if (dy dx) interchange = 1;temp = dx; dx = dy; dy = temp; e = 2*dy dx;for ( i = 0; i 0 ) if (interchange) x += xSign;else y += ySign;e = e 2*dx;if (interchange) y += ySign;el

4、se x += xSign;e = e + 2*dy;二、 1 0 0 0 V A 0 0 T1 = 0 B/V -C/V 0 T2 = -A V 0 00 C/V B/V 0 0 0 1 00 0 0 1 0 0 0 1 V = 三、画家消隐算法的基本原理: 如同画家绘画一样,从远景开始逐步绘制到近景。这样后绘的近景部分就会覆盖先绘的远景部分,达到消隐的目的。 处理流程框图:两三角形排序开始 收集可见面 XY极大 Y 极小检验三角剖分 排序 Z 极大 Y三角形排序 极小检验 N Y 输出绘制 相交边检验交点处比较深度 结束 三角形 包含检验顶点处比较深度注:交点处比较深度部分可以展开分成二和

5、四、六两种情况。四、 端点编码设计方案: 1010 1000 1001 0010 0000 0001 0110 0100 0101采用四位编码, 如下: 上 下 左 右 对应位置 0 为窗口边界可见一侧,1不可见一侧。 编码结果如上图。 int pCode(int x, int y) int code = 0; if (x Wrx) code |= 1; if (x Wry) code |= 4; if (y 1z = t 1一 请给出全象限整型DDA直线段生成算法的C描述。 (20分) 二 已知空间任意轴方向(A,B,C)及轴上一点(X1,Y1, Z1), 构造空间变换T实现空间绕此轴顺时针

6、旋转角。 (20分)三 请给出Zbuffer消隐算法的基本原理示意图,并简述算法实现过程。(20分)四 已知空间投影面X = 0,投影面上矩形窗口的左下角(0,Y1, Z1)和 右上角(0,Y2,Z2),以及空间透视中心(Xe,Ye, Ze)。请给出透视 裁剪约束体上、下、左、右四个裁剪面的方程。 (20分)五 已知三次Bezier曲线的四控制点坐标P1(0,0) ,P2(50,40),P3(80,60),P4(110,10), 请计算参数t = 0,1/3,1/2,1时曲线上对应点的坐标。答案:一、 void DDAline(int x1, int y2, int x2, int y2) i

7、nt I, steps; float x,y,dx,dy; x = x1+0.5; y = y1+0.5; steps = abs(x2-x1) abs(y2-y1) ? abs(x2-x1) +1: abs(y2-y1)+1; dx = (float)(x2 x1)/steps; dy = (float)(y2 y1)/steps; for (I = 0; I x1) ? 1 : -1; ySign = (y2 y1) ? 1 : -1; if (dy dx) interchange = 1;temp = dx; dx = dy; dy = temp; e = 2*dy dx;for ( i

8、 = 0; i 0 ) if (interchange) x += xSign;else y += ySign;e = e 2*dx;if (interchange) y += ySign;else x += xSign;e = e + 2*dy;二 空间变换(1) 构造空间变换T,使过原点的任意轴(A,B,C)与X轴正向对齐。 C/V -B/V 0 0 U 0 -C 0 T1 = B/V C/V 0 0 T2 = 0 1 0 00 0 1 0 C 0 U 00 0 0 1 0 0 0 1 V = U = 注: 答案不唯一, 可以有四种. (2)已知空间任意轴方向(A,B,C)及轴上一点(X1

9、,Y1, Z1), 构造空间变换T实现空间绕此轴顺时针旋转角。 1 0 0 0 C/V B/V 0 0 T1 = 0 1 0 0 T2 = -B/V C/V 0 00 0 1 0 0 0 1 0-x1 y1 z1 1 0 0 0 1 U 0 -C 0 1 0 -C 0 T3 = 0 1 0 0 T4 = 0 cos sin 0C 0 U 0 0 - sin cos 0 0 0 0 1 0 0 0 1 T = T1 T2 T3 T4 T3-1 T2-1 T1 -1 V = U = 注: 答案不唯一, 可以有两种.三 简述Zbuffer消隐算法基本原理,并给出处理流程框图。 基本原理: 与桢缓存对

10、等建立深度缓存Zbuffer,保存屏象素的深度值。 空间可见面投影后,计算投影区域的每一象素的深度值,并 与Zbuffer中的深度值进行比较,值小的则保存。 处理流程框图: 初始化桢缓存 与Zbuffer 结束 可见面集合空 N可见面投影计算投影区域的象素的深度值大于则放弃 与Zbuffer比较小于则修改缓存值四 已知二维空间窗口为(Wleft, Wbotton)-(Wright, Wtop), 空间裁剪 采用端点编码方式实现,请给出您的端点编码设计方案。 假设已知直线段P1P2的两端点编码分别为P1code和P2code,请问 直线段完全可见的充要条件是什么?完全不可见的充分条件是什么?部分可见的充分条件又是什么?并给出相应的C描述。端点编码设计方案: 1010 1000 1001 0010 0000 0001 0110 0100 01

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论