《计算机图形学》练习题(答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《计算机图形学》练习题
1.直线扫描转换的Bresenham 算法
(1) 请写出生成其斜率介于0和1之间的直线的Bresenham 算法步骤。
(2) 设一直线段的起点和终点坐标分别为(1,1)和(8,5),请用Bresenham 算法生成此直线段,确定所有要绘制象素坐标。
(1)输入线段的两个端点,并将左端点存储在(x0,y0)中 将(x0,y0)装入帧缓存,画出第一个点 计算常量∆x, ∆y, 2∆y, and 2∆y-2∆x,并得到决策参数的第一个值: p0 = 2∆y - ∆x
④从k=0开始,在沿线路径的每个xk 处,进行下列检测:
如果pk < 0,下一个要绘制的点就是(xk +1,yk) ,并且pk+1 = pk + 2∆y 否则下一个要绘制的点就是(xk +1, yk +1),并且 pk+1 = pk + 2∆y- 2∆x ⑤重复步骤4,共 ∆x-1次 (2)m=(5-1)/(8-1)=0.57 ∆x=7 ∆y=4 P0=2∆y-∆x=1
2∆y=8 2∆y-2∆x=-6 k pk (xk+1,yk+1) 0 1 (2,2) 1 -5 (3,2) 2 3 (4,3) 3 -3 (5,3) 4 5 (6,4) 5 -1 (7,4) 6 7 (8,5)
2.已知一多边形如图1所示,其顶点为V 1、V 2、V 3、V 4、V 5、V 6,边为E 1、E 2、E 3、E 4、E 5、E 6。用多边形的扫描填充算法对此多边形进行填充时(扫描线从下到上)要建立边分类表(sorted edge table)并不断更新活化边表(active edge list)。
(1) 在表1中填写边分类表中每条扫描线上包含的边(标明边号即可); (2) 在表2中写出边分类表中每条边结构中各成员变量的初始值
(3) 指出位于扫描线y=6,7,8,9和10时活化边表中包含那些边,并写出这些边中的x 值、
y max 值、和斜率的倒数值1/m 。
表1边分类表 4 8 y 10 2 3 5 6 7 9
V 1
V 2
V 3 V 4
V 5 V 6 E 1 E 2 E 3
E 4
E 5 E 6
边
x y max 1/m 4 1 1 9 7 4 6 0 0 5 1 9 7 6 0 0 6 1 9 6 6 0 0 7 1 1 8 7 7 9 0 1 -1 8 2 7 9 9 1 -1 9
3 3 6
9 9 9
1 -1
3. 二维变换
(1) 记P(xf,yf)为固定点,sx 、sy 分别为沿x 轴和y 轴方向的缩放系数,请用齐次坐标(Homogeneous Coordinate)表示写出二维固定点缩放变换的变换矩阵。
(2) 把以A(0,0)、B(1,1)和C(5,2)为顶点的三角形以顶点C 为固定点放大2倍。求出放大后的三角形的顶点坐标。 (1)
Y 值(Scan Line
Number)
边(Edge Number) 1 0 2 0 3 0 4 E1 5 E6,E2 6 E6 7 E3 8 E5,E3 9 E4 10
1 2 3 4 5 6 7 8 9 1
0 表2 边的初始值
(2)平移这个对象,使得他的固定点与原点重合 缩放这个在坐标原点的对象
平移这个对象,使得他的固定点回到原始位置
⎥⎥⎥⎦⎤
⎢⎢⎢⎣⎡⋅⎥⎥⎥⎦⎤⎢⎢⎢⎣
⎡--=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡110
0)1(0)1(01''r r y f y x f x y x s y s s x s y x
所以 A(-5,-2) B(-3,0) C(5,2)
4二维变换
(1) 请用齐次坐标表示写出点Q(x,y)绕定点P(a,b)旋转的旋转变换矩阵。
(2) 求出以A(0,0)、B(1,1)和C(5,2)为顶点的三角形绕固定点P(-1,-1)点旋转450
后的三角形的顶点坐标。 (1)
(2)平移这个对象,使得他的固定点与原点重合 旋转这个在坐标原点的对象
平移这个对象,使得他的固定点回到原始位置
⎥⎥⎥⎦⎤
⎢⎢⎢⎣⎡⋅⎥⎥⎥⎦⎤⎢⎢⎢⎣
⎡--+--=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡110
0sin )cos 1(cos sin sin )cos 1(sin cos 1''y x x y y x y x r r r r θθθθθθθθ
A(-1,-1+2) B(-1,-1+22) C(-1+3/2*2,-1+9/2*2)
x ’=xr+(x- xr)cos θ -(y- yr)sin θ y ’=yr+(x- xr)sin θ +(y- yr)cos θ
5. 如图所示,L(-3,1)和R(2,6)为正方形裁剪窗口两个对角线角点,线段AB、CD、EF、GH 和IJ为被裁剪线段。用Cohen-Sutherland线裁剪算法进行裁剪时要对线段的端点进行编码。
F
(2) A:0001 B:1000 C:0000 D:1010 E:0000 F:0000 G:0100 H:0010 I:1000 J:1000 (3)
可见的:EF
不可见的:GH,IJ 候选的:AB,CD
6. 分别用Sutherland-Hodgman 算法和Weiler-Atherton 算法裁剪图1所示的多边形
p 1p 2p 3p 4p 5p 6p 7p 8p 9p 1,裁剪窗口为如图所示的矩形窗口。 要求:
(1) 用实线分别在图1(a)(b)(c)(d)中绘出用Sutherland-Hodgman 算法沿裁剪窗口的左、
右、上、下窗口边裁剪后的中间结果
(2) 用Weiler-Atherton 算法对图1所示的多边形进行裁剪,以p1为起点,以图1箭头所
示的方向为走向,在图1(e)中用箭头表示画出所有走过的边(包括多边形边和窗口边)及其走向;并在图1(f)中用实线绘出最后裁剪结果。
7
P 7
P 9
P 7
P 9