当前位置:文档之家› 计算机图形学知识点与题型

计算机图形学知识点与题型

一、概念解释 1. 齐次坐标
就是由n+1维向量表示一个n 维向量。

如n 维向量(P 1,P 2, … ,P n )表示为(hP 1,hP 2, hP n ,h ),其中h 称为哑坐标。

2.分辨率
显示器屏幕上水平方向和垂直方向上能被识别的光点的最大数目。

3. 投影中心
投影线汇聚的交点称为投影中心 4. 分析裁剪
确定图形中哪些部分落在显示区之内,哪些落在显示区之外,以便只显示落在显示区内的那部分图形的选择过程称为裁剪。

图形是在世界坐标系定义,而在设备坐标系输出,因而裁剪可在世界坐标系中进行,或是在设备坐标系中进行,由于世界坐标系为实数坐标系,故世界坐标系中的裁剪也称为分析裁剪,表示精确。

二、问答题
1.试述计算机图形学的主要研究内容。

概括地说就是利用计算机进行图形的计算、处理和显示的相关原理与算法。

主要包括:图形的输入,图形的处理,图形的生成和输出。

2.试述彩色CRT 显示器色彩显示原理。

利用复杂的荧光涂层技术,在荧光屏上均匀涂以能发出红绿蓝三基色为一组的荧光涂层,并利用置于荧光屏前的带孔的金属板使电子枪能精确定位每一组荧光涂层的三个荧光点,同时设置多个电子枪的强度级别,从而能使荧光点能组合出多种不同强度三基色发光组合来的产生丰富的色彩。

3.试画出三维显示流程。

4.简述曲线拟合的两种方法。

利用已知的若干点(称为型值点或控制点)来构造曲线称为曲线拟合。

曲线拟合有插值和逼近两种方法,对给定的型值点(控制点),插值方法要求所构造的曲线要严格通过型值点,而逼近方法则只要求构造的曲线近似地接近已知的型值点
三、计算题
1.求关于参考点F(x f ,y f )的旋转变换矩阵。

采用变换合成的方法
先把旋转中心F (x f ,y f )平移至坐标原点,即坐标平移(-x f ,-y f ),变换矩
模型变换 观察变换 投影 窗口至视区变换
显示
关于视见
体裁剪
模型 坐标
世界 坐标
观察
坐标
投影平 面坐标
阵为:
然后进行关于原点的旋转变换,变换矩阵:
最后,再把作之前平移的逆变换,变换矩阵为:
故所求矩阵为:
2.已知三角形ABC 各顶点的坐标A(1,4)、B(5,2)、C(3,5),相对直线X=4做对称变换后到达A ’、B ’、C ’。

试计算A ’、B ’、C ’的坐标值。

(要求用齐次坐标进行变换,列出变换矩阵)
解:变换矩阵为:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-100
01
801
⎥⎥⎥⎦

⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-11
1
524537
11
1
524351
100
010801
故变换后坐标为A ’(7,4),B ’( 3,2),C ’(5,5)
3.请写出平面上任意一点相对于直线P 1P 2(线段的坐标分别为:P 1 (-1,-3) 、P 2 (8,3) )做对称变换的变换矩阵。

(要求列出计算式子,不要求计算结果。


解:直线P 1P 2方程为:3
7
32-=x y
变换步骤:
1.平移直线使之过原点:⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡=10
3/71
001
1T
()f f f f y x T y x --=⎪⎪⎪⎭⎫ ⎝⎛--,1001001()θθθθθ
R =⎪⎪⎪⎭
⎫ ⎝⎛-1000cos sin 0sin cos ()f f f f y x T y x ,1001
00
1=⎪⎪⎪

⎫ ⎝⎛()()f f f f y x T R y x T M --∙∙=,)(,θ
2.旋转直线a 度,使之与x 轴重合:⎥⎥⎥⎦

⎢⎢⎢⎣⎡-=1000cos sin 0sin cos 1a a a a R ,a=-arctg
(2/3)
3.作关于x 轴的对称变换:⎥⎥
⎥⎦

⎢⎢⎢⎣⎡-=100010001x SY 4.旋转直线-a 度,即2之逆变换:⎥⎥
⎥⎦⎤
⎢⎢⎢⎣⎡-=1000cos sin 0sin cos 2a a a a R 5.平移直线过点(0,-7/3),即1之逆变换,⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡-=10
3/71
001
2T
最后,综合各矩阵为:1122T R SY R T M x =
四、分析综合题
1. 请写出能在屏幕上显示以下图形的OpenGL 语句段 (1)红色的大小为4像素的点:P 1(1,8),P 2(2,5),P 3(5,10);
glColor3f(1.0,0.0,0.0);
glPointSize(4.0f); glBegin(GL_POINTS); glVertex2i (1,8);
glVertex2i (2,5); glVertex2i (5,10);
glEnd();
(2)黑色的实折线(线宽3像素):P 1(1,1,3)P 2(2,7,2)P 3(7,12,4);
glColor3f(0.0,0.0,0.0);
glLineWidth (3.0f); glBegin(GL_LINES); glVertex3i (1,1,3); 或
glVertex3i (2,7,2); glVertex3i (2,7,2); glVertex3i (7,12,4);
glEnd();
glColor3f(0.0,0.0,0.0);
glLineWidth (3.0f); glBegin(GL_LINE_STRIP); glVertex3i (1,1,3);
glVertex3i (2,7,2); glVertex3i (7,12,4);
glEnd();
(3)设函数DrawCube()作用为绘制边长为1、中心在原点且长宽高方向分别与三坐标轴平行的立方体,请利用之绘制一场景,场景中有两个中心分别在(2,4,
8) 和(-2,4,8)的单位立方体,以及一个中心在(2,-4,8)且底面对角线与z 轴平行的单位立方体。

glMatrixMode(GL_MODELVIEW); glPushMatrix();
glTranslatef(2,4,8); DrawCube(); glPopMatrix();
glPushMatrix();
glTranslatef(-2,4,8); DrawCube(); glPopMatrix();
glPushMatrix();
glTranslatef(2,-4,8);
glRotatef(45.0f,0.0f,1.0f,0.0f); DrawCube(); glPopMatrix();
2.试说明如何设置才能产生两点透视投影(可作图说明)。

解:要能产生两点透视投影,首先要设置投影平面与坐标系的其中两坐标轴相交而与另外第三个坐标轴平行,其次,投影中心要在不经过所选的投影平面的有限位置上。

3.请写出以下线性八叉树{3X ,64X ,74X ,75X }所对应的八叉树,并画出相应的立方体表示(5分)(立方体节点编码如下:)
E
E
E
F
E
E
E
E
E
E
F
F
E
E
P
P
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 E
E
E
F
E
F
E
E
0 1 2 3 4 5 6 7 P
1
2
3
4
5 6 7
4. 用扫描线填充法对顶点为P 0 (2,5), P 1(2,
10),P 2(8,6),P 3(14,11),P 4(18,4),P 5(12,2),P 6(7,2)的多边形填充,写出EOT 表及当y=7时的AET 表。

5.如图,请说明利用编码裁剪算法,裁剪线段AB 的大致过程(CDEF 为裁剪窗口,
按左右下上的顺序)。

解:
(1) 判断A 、B :并非完全在窗口内,也非显然不可见; (2) 按左右下上顺序求AB 与窗口边所在直线交点,求得与左窗边直线交于P 1;
(3) AP 1显然在窗口外,舍去;判断P 1B :并非完全在窗口内,也非显然不可见;
(4) 按左右下上顺序求P 1B 与窗口边所在直线交点,求得与右窗边直线交于P 4;
(5) BP 4显然在窗口外,舍去;
判断P 1P 4:并非完全在窗口内,也非显然不可见;
(6) 按左右下上顺序求P 1 P 4与窗口边所在直线交点,求得与下窗边直线交于P 3;
(7) P 3P 4显然在窗口外,舍去;判断P 1P 3:完全在窗口内。

故算法结束,得裁剪结果直线段P 1P 3
Λ
1
2 Λ
3 Λ
4
5
6 Λ
7 EOT Λ
2 10
-3/2 8 10
Λ
-4/7 18
11
Λ
6/5
8
11
Λ
3
1
4
-5/3
7
5
AEL
0 2 10 -3/2 13/2 10
6/5 46/5 11 Λ
-4/7 114/7 11 A B
C
D E
P 1
F P 2
P 3 P 4。

相关主题