计算机图形学练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、已知一直线段起点(0,0),终点(8,6),利用Bresenham 算法生成此直线段,写出生成过程中坐标点及决策变量d 的变化情况,并在二维坐标系中,标出直线上各点。
评分标准:按如下答案所写可得全分。如给出Bresenham 的基本思想,可得2分,给出程序得3分,给出e 得计算公式可得2分,给出图示得3分。思路或步骤正确,中间座标点算错,酌情处理。
00x y =⎧⎨
=⎩0.50.750.50.250e m =-=-=> 11x y =⎧⎨=⎩
0.250.75100e =+-=>=22x y =⎧⎨=⎩00.7510.250e =+-=-<= 3
2x y =⎧⎨
=⎩
0.250.750.50e =-+=>=43x y =⎧⎨=⎩0.50.7510.250e =+-=>=5
4
x y =⎧⎨
=⎩0.250.75100e =+-=>=65x y =⎧⎨
=⎩00.7510.250e =+-=-<= 75x y =⎧⎨=⎩
0.250.750.50e =-+=>=86x y =⎧⎨=⎩
2、试用中点画圆算法原理推导第一象限中y=0到x=y 半径为R 的圆弧段的扫描转换算法。(要求写清原理、误差函数和递推公式,并进行优化)
评分标准:
(1)圆的中点Bresenham 的原理是在第一象限中y=0到x=y :每次在主位移方向x 上走一步,y 方向上退不退步取决于中点偏差判别式的值。
(2)偏差判别式:
222)5.0()1()5.0,1(),(R y x y x F y x F d i i i i M M --++=-+==
y 方向的变化情况:
⎩⎨⎧≥<=+)0(
1-)0(
1d y d y y i i
i (3)递推公式:
当d<0时,下一步的中点坐标为:M (x i +2,y i -0.5)。所以下一步中点偏差判别式为:
2221)5.0()2()5.0,2(R y x y x F d i i i i i --++=-+=+
3232)5.0()1(222++=++--++=i i i i i x d x R y x
当d ≥0时,下一步的中点坐标为:M (x i +2,y i -1.5)。所以下一步中点偏差判别式为:
2
221)5.1()2()5.1,2(R y x y x F d i i i i i --++=-+=+5
)(2)22(32)5.0()1(222+-+=+-+++--++=i i i i i i i y x d y x R y x
(4)中点偏差判别式的初值:
R R R R F d -=--+=-=25.1)5.0(1)5.0,1(220
(5)算法设计:
1) 输入圆的半径R 。
2) 定义圆当前点坐标x ,y 、定义中点偏差判别式d 、定义像素点颜色rgb 。 3) 计算R d -=25.1,x=0,y=R ,rgb =RGB(0,0,255)。 4) 判断d 的符号。若d<0,则(x ,y )更新为(x +1,y ),d 更新为d+2x +3;否则
(x ,y )更新为(x +1,y -1),d 更新为d +2(x -y )+5。 5) 当x 小于等于y ,重复步骤⑷,否则结束。
3、如下图所示多边形,若采用扫描线算法进行填充,试写出该多边形的ET 表和当扫描线Y=3时的有效边表(AET 表)。
解:边表:
4、试按左下右上顺序用四向算法,分析当S1为种子时,下图区域的填充过程。
S12345
6789
10
11
12
答案:S1→8→7→6→3→4→12→11→10→2→9→5
5、将下图中的多边形ABCD 先关于点C(3,4)整体放大2倍,再绕点D (5,3)顺时针旋转90 ,试推导其变换矩阵、计算变换后的图形各顶点的坐标,并画出变换后的图形。
Y=3
4/3 4 -3
4 5 -1
4 5 1
AF
DE DC
BC
1 2 3 4 5
2 4 -3
2 1 0
AF ABBBBB 4 5 -1
4 5 1
1 5 1
FE
DE
DC
(1) 关于点C (3,4)整体放大2倍
⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--==143020002143010001100020002143010001321T T T T
(2) 绕点D (5,3)顺时针旋转90度
⎥⎥
⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡︒-︒--︒-︒-⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=1350100011000)90cos()90sin(0)90sin()90cos(135010001
'T
(3) 变换矩阵T 总
=T*T’=⎥⎥⎥⎦⎤
⎢⎢⎢⎣⎡--1112002020 (4)⎥⎥
⎥⎥⎦⎤
⎢⎢⎢⎢⎣
⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡135143131111''''D C B A
6、已知三角形ABC 各顶点的坐标A(3,2)、B(5,5)、C(4,5),相对直线P 1P 2(线段的坐标分别为:P 1 (-3,-2) 、P 2 (8,3) )做对称变换后到达A’、B’、C’。
试计算A’、B’、C’的坐标值。(要求用齐次坐标进行变换,列出变换矩阵,列出计算式子,不要求计算结果)
解:(1)将坐标系平移至P 1 (-3,-2)点:
⎥⎥
⎥⎦⎤
⎢⎢⎢⎣⎡=123010001A T (2)线段P 1P 2与X 轴夹角为
115
arctg
=θ (3) 顺时针方向旋转θ角:
cos sin 0sin cos 000
1B T θ
θθ
θ
-⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦
(4)关于X 轴对称:
1
00
10001C T ⎡⎤
⎢⎥=-⎢⎥⎢⎥⎣⎦