计算机图形学版陆枫课后习题答案部分Word格式.docx
《计算机图形学版陆枫课后习题答案部分Word格式.docx》由会员分享,可在线阅读,更多相关《计算机图形学版陆枫课后习题答案部分Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
![计算机图形学版陆枫课后习题答案部分Word格式.docx](https://file1.bdocx.com/fileroot1/2022-12/13/20847a11-dff9-449f-a558-2820a3e38fc6/20847a11-dff9-449f-a558-2820a3e38fc61.gif)
在中点左
取左点
d-2△x
-1
5.1.2改进Bresenham算法(P112)
改进误差项e
e更新
e-2△x
e+2△y
e-2△y
e+2△x
习题解答
习题5(P144)
5.3试用中点Bresenham算法画直线段的原理推导斜率为负且大于1的直线段绘制过程
(要求写清原理、误差函数、递推公式及最终画图过程)。
(P111)
解:
k<
=-1
|△y|/|△x|>
=1
y为最大位移方向
故有
构造判别式:
推导d各种情况的方法(设理想直线与y=yi+1的交点为Q):
所以有:
yQ-kxQ-b=0
且yM=yQ
d=f(xM-kxM-b-(yQ-kxQ-b)=k(xQ-xM)
所以,当k<
0,
d>
0时,M点在Q点右侧(Q在M左),取左点
Pl(xi-1,yi+1)。
d<
0时,M点在Q点左侧(Q在M右),取右点
Pr(xi,yi+1)。
d=0时,M点与Q点重合(Q在M点),约定取右点Pr(xi,yi+1)
。
所以有
递推公式的推导:
d2=f(xi-1.5,yi+2)
当d>
0时,
d2=yi+2-k(xi-1.5)-b
增量为1+k
=d1+1+k
当d<
0时,
d2=yi+2-k(xi-0.5)-b
增量为1
=d1+1
当d=0时,
5.7利用中点Bresenham画圆算法的原理,
推导第一象限y=0到y=x圆弧段的扫描转换算法
(P115)
y坐标
圆心角α
y=0
y=x
0°
=α<
=45°
d+2y+3
d-2(y-x)+5
y=x
y=1
45°
=90°
d+2x+3
d-2(x-y)+5
在x=y到y=0的圆弧中,(R,0)点比在圆弧上,算法从该点开始。
最大位移方向为y,由(R,0)点开始,y渐增,x渐减,每次y方向加1,x方向减1或减0。
设P点坐标(xi,yi),下一个候选点为右点Pr(xi,yi+1)和左点Pl(xi-1,yi+1),
取Pl和Pr的中点M(xi-0.5,yi+1),设理想圆与y=yi+1的交点Q,
d=f(xM,yM)=(x-0.5)2+(yi+1)2+R2
0时,M在Q点左方(Q在M右),取右点Pr(xi,yi+1)
0时,M在Q点右方(Q在M左),取左点Pl(xi-1,yi+1)
当d=0时,M与Q点重合,约定取左点Pl(xi-1,yi+1)
推导判别式:
=0时,取左点Pl(xi-1,yi+1),下一点为(xi-1,yi+2)和(xi-2,yi+2)
0时,取右点Pr(xi,yi+1),下一点为(xi,yi+2)和(xi-1,yi+2)
d0=f(R-0.,1)=R2-R+0.25+1-R2=1.25-R
5.11如图5-59所示多边形,若采用扫描转换算法(ET边表算法)进行填充,
试写出该多边形的边表ET和当扫描线Y=4时的有效边表AET(活性边表)。
(P125)
1)边表ET表
x|ymin
ymax
1/k
next
2)y=4时的有效边表AET
x
注意:
水平线不用计算。
5.22构造两个例子,一个是4-连通图,其边界是8-连通的,
另一个是8-连通图,其边界是4-连通的。
(P132)
4-连通区域
8-连通区域
第六章二维变换及二维观察
齐次坐标,窗口,视区,二维观察流程,
字符裁减的三种策略,外部裁减
计算:
二维几何变换
直线裁减:
区域编码法和梁友栋算法
多边形裁减:
逐边裁减法和双边裁减法
6.1.3二维变换矩阵(P147)
3阶二维变换矩阵
子矩阵功能
abp
cdq
lms
abcd比例旋转pq投影变换
lm
平移变换s整体比例
6.2.3旋转变换(P149)
逆时针变换矩阵
顺时针变换矩阵
cosθsinθ
0
-sinθcosθ
0
0
1
cosθ-sinθ
sinθ
cosθ
6.2.5相对任一参考点的二维几何变换(P155)
例如:
相对(xf,yf)点的旋转变换
平移到
坐标原点
旋转角度θ
反平移回
原来位置
1
0
1
-xf-yf1
cosθsinθ0
-sinθcosθ0
xf
yf1
习题6(P177)
6.7求四边形ABCD绕P(5,4)旋转45度的变换矩阵和端点坐标,
画出变换后的图形。
(P147P148P155)
变换的过程包括:
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)
6.15用梁友栋算法裁减线段AB,B点的坐标改为(-2,-1)(P170)
以A(3,3)为起点,B(-2,-1)为终点
所以有x1=3,y1=3,x2=-2,y2=-1,wxl=0,wxr=2,wyb=0,wyt=2
构造直线参数方程:
x=x1+u(x2-x1)
x1
x2
y
A(3,3)
3
C(7
/4,2)
2
D(
0,3/
5)1
-2
3
B(-2,-1)
x=x1+u(x2-x1)
(0<
=u<
=1)
y=y1+u(y2-y1)
把x1=3,y1=3,x2=-2,y2=-1代入得
x=3-5u
y=3-4u
计算各个p和q值有:
p1=x1-x2=5
q1=x1-wxl=3
p2=x2-x1=-5
q2=wxr-x1=-1
p3=y1-y2=4
q3=y1-wyb=3
p4=y2-y1=-4
q4=wyt-y1=-1
根据,uk=qk/pk算出
pk<
0时:
u2=1/5u4=1/4
pk>
u1=3/5u3=3/4
umax=MAX(0,u2,u4)=MAX(0,1/5,1/4)=1/4
(取最大值)
umin=MIN(u1,u3,1)=MIN(3/5,3/4,1)=3/5
(取最小值)
由于umax<
umin,故此直线AB有一部分在裁减窗口内,
pk<
0时,将umax=1/4
代入直线参数方程
x=x1+u(x2-x1)
x=3+1/4*(-5)=3-5/4=7/4
y=3+1/4*(-4)=2
求出直线在窗口内部分的端点C(7/4,2)
pk>
0时,将umin=3/5代入直线参数方程
x=3+3/5*(-5)=0
y=3+3/5*(-4)=3/5
求出直线在窗口内部分的端点D(0,3/5)。
所以,直线在窗口内部分的端点为C(7/4,2),D(0,3/5)。
第七章三维变换及三维观察
几何变换、投影变换、透视投影、平行投影、灭点
平面几何投影的分类以及分类原则
三维几何变换、三视图
7.2三维几何变换(P180)
4阶三维变换矩阵
abcp
defq
ghir
lmns
abcdefghi比例旋转pqr透视投影
lmn
平移变换
s
整体比例
整体比例变换(P182)
s>
1时,整体缩小,如2表示2:
1缩小。
s<
1时,整体放大,如1/2表示1:
2放大。
7.3.1正投影
1.主视图V(P191)
4阶三维变换矩阵
y轴方向投影
0
2.俯视图H
-1
-z0
z轴方向投影
绕x轴旋转-90度
z轴方向平移-1
1
cos(-90°
)sin(-90°
)0
0-sin(-90°
)cos(-90°
)0
-z0
3.侧视图W(P192)
-1
-x0
x轴方向投影
绕z轴旋转90度
x轴方向平移-1
cos90°
sin90°
0-sin90°
1
-x00
习题7(P213)
7.5求空间四面体关于点P(2,-2,2)整体放大2倍的变换矩阵,
画出变换后的图形。
(P182)
关于点P(2,-2,2)整体放大两倍,
变换矩阵:
点P(2,-2,2)平移至原点--比例变换放大两倍--反平移回点P(2,-2,2)。
变换过程:
空间四面体ABCD的规范化齐次坐标(x,y,z,1)*4阶三维比例变换矩阵
空间四面体ABCD的齐次坐标(x'
z'
1/2)转换成规范化齐次坐标
顶点
x
y
z
1
A
B
C
D
2,2,-2,1
2,6,-2,1
-2,6,-2,1
2,6,2,1
由比例变换后规范化齐次坐标(x'
(2,2,-2)B'
(2,6,-2)C'
(-2,6,-2)D'
(2,6,2)
7.7求空间四面体ABCD三视图的变换矩阵(平移矢量均为1),并作出三视图。
(P180)
1)主视图V(P191)
空间四面体ABCD的规范化齐次坐标矩阵*Y轴方向投影矩阵(不需要平移)
2)俯视图H(P191)
Z轴方向投影矩阵*绕X轴旋转-90度矩阵*Z轴方向平移-1矩阵
空间四面体ABCD的规范化齐次坐标矩阵*投影变换矩阵(可以直接写出)
3)侧视图W(P192)
X轴方向投影矩阵*绕Z轴旋转90度矩阵*X轴方向平移-1矩阵
4)画图注意:
三个图画在同一坐标系中,点与点的连接关系以及直线的可见性问题。
试题分析
《计算机图形学》考试试题
一、填空
2.帧缓存(P42):
(1024*768*8/8)/1024=768kB
颜色位面数(P43):
24
总颜色数:
(2^8)^3=2^24=(2^4)*(2^20)=16MB
二、名词解释
三、简答与计算
3.边标志算法(P128)
打标记:
x1,x2,x3,x4
填充:
x1与x2,x3与x4扫描线区间的像素点。
5.正则集合运算(P88)
通常意义下的集合求交运算:
C=A∩B
有一条弧立边
正则集合运算:
C=A∩*B
无弧立边
四、计算作图题
1.中点Bresenham算法(P109)
直线斜率:
k=(6-1)/(9-1)=5/8
0<
k<
1
计算初值:
△x=9-1=8△y=6-1=5d=△x-2△y=8-2*5=-2
取上点:
2△x-2△y=2*8-2*5=6
d+2△x-2△y=-2+6=4
取下点:
2△y=2*5=10
d-2△y=4-10=-6
d+2△x-2△y=4
d-2△y=-6
d+2△x-2△y=0
4
d-2△y=-10
5
d+2△x-2△y=-4
6
d+2△x-2△y=2
7
d-2△y=-8
8
d+2△x-2△y=-2
9
2.改进的有效边表算法(P125)
1)边表ET:
交点x(最小y坐标ymin)
x坐标
CB边
CA边
→
-4/3
-2/7
/
BA边
-1/2
6
7
8
2)y=4的有效边表AET:
交点x
y=4
|
与CB边相交
┗
3.3
┓
┏
—————————
┛
与CA边相交
5.4
3)y=4时的填充交点对:
(3.3,4)(5.4,4)
3.求三角形绕B点(2,5)旋转θ的变换矩阵。
求三角形绕B点顺时针旋转90度后各端点坐标。
(P125)
1)三角形绕B点(2,5)旋转θ的变换矩阵
T=Tt*TR*Tt-1
-2-5
2
5
2)三角形绕B点顺时针旋转90度的变换矩阵,θ=-90°
cos90°
-sin90°
sin90°
变换过程:
三角形ABC的规范化齐次坐标(x,y,1)*3阶二维变换矩阵
P=P*T
得到三角形ABC变换后的规范化齐次坐标(x'
1)
4.6
2
可以写出顶点坐标:
A'
(4.6,2)B'
(2,5)C'
(0,-1)
4.用编码裁剪算法裁剪线段P1(0,2)P2(3,3)。
要求写出:
(164)
1)窗口边界划分的9个区间的编码原则;
2)线段端点的编码;
3)裁剪的主要步骤;
4)裁剪的输出结果。
线段P1(0,2)P2(3,3)的编码裁剪
1001
1000
1010
0001
P2(3,3)
0000
S
0010
P1(0,2)2
0101
0100
0110
2
4
x
编码
D3
D2
D1
D0
窗口外
上边top
下边bottom
右边right
左边left
条件
y>
wyt
wyt=4
y<
wyb
wyb=1
x>
wxr
wxr=4
x<
wxl
wxl=1
取值
D3=1
D2=1
D1=1
D0=1
P1code1=0001,
P2code2=0000
输入P1(0,2),P2(3,3),wyt=4,wyb=1,wxr=4,wxl=1;
P2code2=0000;
code1|code2≠0不能简取;
code1&
code2=0不能简弃;
求线段P1(0,2)P2(3,3)和窗口左界wxl=1的交点,
把wxl=1代入直线方程求出y=kx+b=(1/3)*x+2=2.3
交点坐标S(1,2.3)替换端点坐标P1(0,2),使P1坐标为(1,2.3);
去掉P1S线段,输出线段P1P2。
4)裁剪的输出结果:
P1(1,2.3)P2(3,3)。
5.用改进Bresenham算法画直线段的原理,
推导斜率K>
1的直线段的扫描转换算法。