计算机图形学习题解答

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 Fra Baidu bibliotek 1
5 0 1
6.13 解:根据已知条件,可得wxl=0,wxr=2,wyb=0,wyt=2; 直线段的斜率k=5/4. 由编码规则,可得A的编码为1010,B的编码为0101。
∵A|B=1111≠0, A&B=0 ∴对于直线段AB既不能简取也不能简弃,需进行求交处理。 由A的编码可知A在窗口右外侧,与右边界、上边界有交点,分别设为 P1(x1,y1)和P2(x2,y2)。其坐标计算如下:
解:(1)
2
1
T1
0
5
0 1 4
0 0 1

2 2 2
0
2 2 2 2 0
0
0 1

1 0 5
0 1 4
2
0 0 1
2
2 2
5
2 2
2 2 2 2 49 2
2
0
0 1
5+ 2 4-2 2 1
4
7
7 1
1 3 7 4
1
1
1 1

T1=
5 3
5
2 2 2 2
当d 0时 d 当d 0时 d
(4)d的初始值
F (xi F (xi d0
2, yi 2, yi 0.5 k
1.5) d 1 k d
0.5) d k d 3
1
4
4
1 4
x
y
0
15
1
14
2
13
3
12
4
11
5
10
6
9
7
8
8
7
9
6
10
5
4
11
3
12
2
13
1
14
15
o 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 x 16
d1 F(xi 0.5, yi 1) b2 (xi 0.5)2 a2 ( yi 1)2 a2b2
xi1
xi xi
1
(d1 0) (d1 0)
误差项递推:
当d1 0时
d1 F (xi 1.5, yi 2) b2 (xi 1.5)2 a2 ( yi 2)2 a2b2 d1 b2 (2xi 2) a2 (2 yi 3) d1 128xi 288yi 560
当 b2 xi 0.5 p a2 yi 1 时转入上半部分。
初始值 d2用下半部分计算的最后像素点的坐标值来计算。
已知椭圆的长半轴a=12,b=8.用中点Bresenham画椭圆算法 确定第二象限椭圆弧上的像素点的位置,初始点为(-12,0).
解: 根据题意,先绘制椭圆弧的下半部分. y是最大位移方向,每次走一步,在y方向上加1,x方向上加1或加0. 构造判别式:
(4)d的初始值
d0
F
R 0.5, 2
R 2
1
1.25
2R 2
5.9解: 根据题意,算法要从点(a,0)到(0,b)逆时针确定第一象限椭圆弧。
先绘制椭圆弧的下半部分.
y是最大位移方向,每次走一步,在y方向上加1,x方向上减1或0.
构造判别式:
d1 F (xi 0.5, yi 1) b2 (xi 0.5)2 a2 ( yi 1)2 a2b2
d1的初始值:d1 F a 0.5,1 a2 b2 0.25 a
下面绘制椭圆弧的上半部分. x是最大位移方向,每次走一步,在x方向上减1,y方向上加1或0. 构造判别式:
d2 F (xi 1, yi 0.5) b2 (xi 1)2 a2 ( yi 0.5)2 a2b2
yi1
计算机图形学习题解答
5.2 利用DDA算法扫描转换直线段p1p2,其中p1为(0,0),p2 为(20,15) 。
答:(1)基本原理:根据题意斜率 k 3 p 1 ,因此x是最大 位移方向,每次在x方向上加1,y方向4上加k。即有:
xi 1 xi 1 yi 1 yi k
(2)由于在光栅化的过程中不可能绘制半个像素,因此对求出 的yi+1的值需进行四舍五入,即round(yi+1)=(int)(yi+1+0.5) 。解得像素序列如下:
10
0.5
14
10
1.25
15
11
1
16
12
0.75
17
13
0.5
18
13
1.25
19
14
1
20
15
0.75
改进的Bresenham算法
x
y
e
e+ 2△y
0
0
-20
10
解: 根据题意斜率 k 3 p 1 ,因此 x是最大位移方向,每4次在x方 向上加1,y方向上加1或加0。
1
1
-30
0
2
1
0
30
当d1 0时 d1 F (xi 0.5, yi 2) b2 (xi 0.5)2 a2 ( yi 2)2 a2b2 d1 a2 (2 yi 3) d1 288yi 432
d1的初始值:d1 F 11.5,1 608
下面绘制椭圆弧的上半部分. x是最大位移方向,每次走一步,在x方向上加1,y方向上加1或加0. 构造判别式:
20
• 一旦y方向上走了一步,e=e- 2△x=e-40
16
12
-20
10
17
13
-30
0
18
13
0
30
19
14
-10
20
20
15
-20
10
5.7利用中点Bresenham画圆算法的原理推导第一象限x=y到 y=0圆弧段的扫描转换算法(要求写清原理、误差函数、递 推公式及最终画图过程)。 解: (1) 根据题意,y为最大位移方向,每次y方向上减
1,x方向上或加1,或加0。
(2)构造判别式:
d F(xM , yM ) F(xi 0.5, yi 1) xi 0.52 yi 12 R2
x
x x
1
(d 0) (d f 0)
(3)误差项递推:
当d 0时 d F(xi 1.5, yi 2) d 2xi 2yi 5
当d f 0时 d F(xi 0.5, yi 2) d 2yi 3
4 2 2
45 2 2
1 1
5-2 2 4-2 2 1
(2)
1 0 0 0 1 0 1 0 0 0 1 0
T2
0
1 0 • 1 0 0 • 0 1 0 1 0 0
5 4 1 0 0 1 5 4 1 9 -1 1
4 1 1
8 3 1
7 3 1 • T2= 6 6 1
7 7 1
2 6 1
1252
-1
8
1188
0
8
5.11 解:ET表如下:
1
1 3 1/2
2
3 3 -1
3
4
6 6 -1
5
6
750 3 6 1/4 651
当扫描线Y=4时的有效边表如下:
y=4
A6A5
3.5 6 1/4
A4A3
651
A4A5
6 6 -1
A2A3
750
6.3试推导将二维平面上任意直线段p1(x1,y1)p2(x2,y2)转换成 与x轴重合的变换矩阵。
yi1
yi yi
1
(d 0.5) (d 0.5)
误差项的计算 • d初=0, • 每走一步:d=d+3/4 • 一旦y方向上走了一步,d=d-1
x
y
d
0
0
0.75
1
1
0.5
2
1
1.25
3
2
1
4
3
0.75
5
4
0.5
6
4
1.25
7
5
1
8
6
0.75
9
7
0.5
10
7
1.25
11
8
1
12
9
0.75
13
17
18
19
y
d
0
-1/4
1
0
1
-3/4
2
-1/2
3
-1/4
4
0
4
-3/4
5
-1/2
6
-1/4
7
0
7
-3/4
8
-1/2
9
-1/4
10
0
10
-3/4
11
-1/2
12
-1/4
13
0
13
-3/4
14
-1/2
改进的Bresenham算法
解: 根据题意斜率 k 3 p 1 ,因此 x是最大位移方向,每4次在x方 向上加1,y方向上加1或加0。
x 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 y 0 1 2 2 3 4 5 5 6 7 8 8 9 10 11 11 12 13 14 14 15
y 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
o 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 x

P3(x3,y4)和xP34(x4w,yx4l)。0其, y坐4标计w算yb如下0:
y3 3 k(0 3) 3 4
x4 3 0 3 3 k5
则,可得P3的编码为0100,P4的编码为0000,故P4为实交点,丢掉P4B.
所以,裁剪后窗口内的直线段为P1P4,坐标分别为(2,7/4)和(3/5,0).
6.17 解: 根据已知条件,令x1=3,y1=3,x2=-1,y2=-2; 可得,wxl=0,wxr=2,wyt=2,wyb=0, △x=-4, △y=-5;
则,p1= -△x =4,p2= △x =-4,p3=- △y =5,p4= △y =-5; q1=x1-wxl=3,q2=wxy-x1=-1,q3=y1-wxb=3,q4=wyt-y1=-1;
d2 F (xi 1, yi 0.5) b2 (xi 1)2 a2 ( yi 0.5)2 a2b2
yi1
yi yi
1
(d2 p 0) (d2 0)
误差项递推:
当d2 0时 d2 F (xi 2, yi 1.5) b2 (xi 2)2 a2 ( yi 1.5)2 a2b2 d2 b2 (2xi 3) a2 (2 yi 2) d2 128xi 288yi 480 当d1 0时 d2 F (xi 2, yi 0.5) b2 (xi 2)2 a2 ( yi 0.5)2 a2b2 d2 b2 (2xi 3) d2 128xi 192
∵pk≠0(k=1,2,3,4),则直线段与窗口边界的交点为:
u1 q1 3 ,u2 q2 1 ,u3 q3 3 ,u4 q4 1
p1 4
p2 4
当 b2 xi 0.5 p a2 yi 1 时转入上半部分。
初始值 d2用下半部分计算的最后像素点的坐标值来计算。
x
y
d
-12
0
-608
-12
1
-176
-12
2
544
-11
3
144
-10
4
-1116
-9
5
-764
-8
6
4
-7
6
-828
-6
7
484
-5
7
-92
-4
8
1764
-3
8
1444
-2
8
x1 wxr 2, y2 wyt 2 y1 3 k(2 3) 1 3
4 x2 3 2 3 2 1
k5
则,可得P1的编码为0000,P2的编码为0010,故P1为实交点,丢掉P1A.
又 ∵P1|B=0101≠0, A&B=0 ∴对于直线段P1B既不能简取也不能简弃,需进行求交处理。 由B的编码可知B在窗口左外侧,与左边界、下边界有交点,分别设
xi1
xi xi
1
(d1 0) (d1 0)
误差项递推:
当d1 0时
d1 F (xi 1.5, yi 2) b2 (xi 1.5)2 a2 ( yi 2)2 a2b2
d1 b2 2xi 2 a2 2 yi 3
当d1 0时
d1 F (xi 0.5, yi 2) b2 (xi 0.5)2 a2 ( yi 2)2 a2b2 d1 a2 (2 yi 3)
3
2
-10
20
4
3
-20
10
5
4
-30
0
6
4
0
30
y
yi yi
1
(e 0) (e 0)
7
5
-10
20
8
6
-20
10
9
7
-30
0
10
7
0
30
11
8
-10
20
误差项的计算
12
9
-20
10
• e初=-△x=-20, • 每走一步:e=e+ 2△y=e+30
13
10
-30
0
14
10
0
30
15
11
-10
yi yi
1
(d2 p 0) (d2 0)
误差项递推:
当d2 0时 d2 F (xi 2, yi 1.5) b2 (xi 2)2 a2 ( yi 1.5)2 a2b2 d2 b2 (2xi 3) a2 (2 yi 2)
当d1 0时 d2 F (xi 2, yi 0.5) b2 (xi 2)2 a2 ( yi 0.5)2 a2b2 d2 b2 (2xi 3)
解:(1)先将p1(x1,y1)平移到原点;
(2)顺时针旋转 ;
1 0 0 cos -sin 0 cos
-sin
0
T
0
1
0

sin
cos
0
sin
cos
0
x1 y1 1 0
0 1 -x1cos y1sin x1cos y1sin 1
其中:
arctg
y2 x2
y1 x1
6.7如图所示四边形 ABCD,求绕P(5,4)点分别旋转45和90 的变换矩阵,并求出各端点坐标,画出变换后的图形。
中点Bresenham算法 解: (1)根据题意斜率 k 3 p 1 ,因此x是最大位移方向,每
次在x方向上加1,y方向4上加1或加0。
(2)构造判别式:
d F(xM , yM ) F(xi 1, yi 0.5) yi 0.5 k(xi 1)
y
y y
1
(d 0) (d 0)
(3)误差项递推:
相关文档
最新文档