一、问答题(25 分,每题5 分)
1 、列举三种常见的颜色模型,简要说明其原理和特点。
答:所谓颜色模型就是指某个三维颜色空间中的一个可见光子集,它包含某
颜色。
常用的颜色模型有 R G B 、 C M Y 、 H S V 等。
R G B 颜色模型通常用于彩色阴极射线管等彩色光栅图形显示设备中,它
多、最熟悉的颜色模型。
它采用三维直角坐标系,红、绿、蓝为原色,各个可以产生复合色
C MY 颜色模型以红、绿、蓝的补色青( C yan )、品红( Magenta )、黄( Yello
w )为原色
构成,常用于从白光中滤去某种颜色,又被称为减性原色系统。
印刷行业中 C MY 颜色模型。
H S V ( H ue , Saturation , Value )颜色模型是面向用户的,对应于画家的
配色方
5.1.2 中点 Bresenham 算法(P109)
5.1.2 改进 Bresenham 算法(P112)
习题5(P144)
5.3 试用中点Bresenham算法画直线段的原理推导斜率为负且大于1的直线段绘制过程(要求写清原理、误差函数、递推公式及最终画图过程)。
(P111)
解: k<=-1 |△y|/|△x|>=1 y为最大位移方向
故有
构造判别式:
推导d各种情况的方法(设理想直线与y=yi+1的交点为Q):
所以有: y
Q -kx
Q
-b=0 且y
M
=y
Q
d=f(x
M -kx
M
-b-(y
Q
-kx
Q
-b)=k(x
Q
-x
M
)
所以,当k<0,
d>0时,M点在Q点右侧(Q在M左),取左点 P
l (x
i
-1,y
i
+1)。
d<0时,M点在Q点左侧(Q在M右),取右点 Pr(x
i ,y
i
+1)。
d=0时,M点与Q点重合(Q在M点),约定取右点 Pr(x
i ,y
i
+1) 。
所以有
递推公式的推导:
d
2=f(x
i
-1.5,y
i
+2)
当d>0时,
d
2=y
i
+2-k(x
i
-1.5)-b 增量为1+k
=d
1
+1+k 当d<0时,
d
2=y
i
+2-k(x
i
-0.5)-b 增量为1
=d
1
+1
当d=0时,
5.11 如图5-59所示多边形,若采用扫描转换算法(ET边表算法)进行填充,
试写出该多边形的边表ET和当扫描线Y=4时的有效边表AET(活性边表)。
(P125)
解:
1)边表ET表
2)y=4时的有效边表AET
注意:水平线不用计算。
5.22 构造两个例子,一个是4-连通图,其边界是8-连通的,
另一个是8-连通图,其边界是4-连通的。
(P132)
解:
4-连通区域 8-连通区域
6.7 求四边形 ABCD 绕 P(5,4)旋转45度的变换矩阵和端点坐标,画出变换后的图形。
(P147 P148 P155)
解:变换的过程包括:
1)平移:将点P(5,4)平移至原点(0,0),
2)旋转:图形绕原点(0点)旋转45度,
3)反平移:将P点移回原处(5,4),
4)变换矩阵:平移—旋转—反平移
5)变换过程:四边形 ABCD 的规范化齐次坐标(x,y,1) * 3阶二维变换矩阵
由旋转后四边形 ABCD 的规范化齐次坐标(x',y',1)可写出顶点坐标: A'(6.4,1.2) B'(7.1,4.7) C'(4.3,8.5) D'(2.2,1.2)
3.求三角形绕B点(2,5)旋转θ的变换矩阵。
求三角形绕B点顺时针旋转90度后各端点坐标。
(P125)
解:1)三角形绕B点(2,5)旋转θ的变换矩阵
T=T
t * T
R
* T
t
-1
2)三角形绕B
T=T
t * T
R
* T
t
-1
变换过程:三角形 ABC 的规范化齐次坐标(x,y,1) * 3阶二维变换矩阵
P=P * T
得到三角形 ABC 变换后的规范化齐次坐标(x',y',1)
可以写出顶点坐标:A'(4.6,2) B'(2,5) C'(0,-1)
4.用编码裁剪算法裁剪线段P1(0,2)P2(3,3)。
要求写出:(164)
1)窗口边界划分的9个区间的编码原则;
2)线段端点的编码;
3)裁剪的主要步骤;
4)裁剪的输出结果。
解:线段P
1(0,2)P
2
(3,3)的编码裁剪
y100110001010
4
0001
P2(3,3)
0000
S
0010
3
P1(0,2) 2
1 010*********
0 1 2 3 4 x
1)窗口边界划分的9个区间的编码原则;
2)
P
1 code1=0001, P
2
code2=0000
3)裁剪的主要步骤;
输入 P
1(0,2), P
2
(3,3), wyt=4, wyb=1, wxr=4, wxl=1;
P
1 code1=0001, P
2
code2=0000;
code1|code2≠0 不能简取;code1&code2=0 不能简弃;
求线段 P
1(0,2)P
2
(3,3)和窗口左界wxl=1 的交点,
把 wxl=1 代入直线方程求出 y=kx+b=(1/3)*x+2=2.3
交点坐标S(1,2.3)替换端点坐标P
1(0,2),使P
1
坐标为(1,2.3);
去掉P
1S线段,输出线段P
1
P
2。
4)裁剪的输出结果:P
1(1,2.3)P
2
(3,3)。