计算机图形学计算题.docx
《计算机图形学计算题.docx》由会员分享,可在线阅读,更多相关《计算机图形学计算题.docx(12页珍藏版)》请在冰豆网上搜索。
计算机图形学计算题
题目中所有的坐标系,均以OpenGL坐标系为准
1.使用OpenGL图形库渲染如下四棱截锥体图形,根据给定点的A、C、G的坐标推算出其余五个点B、D、E、F、H的坐标
答:
B(1.0f,-1.0f,0.0f)(2分)
D(-1.0f,-1.0f,-2.0f)(2分)
E(-0.5f,1.0f,-0.5f)(2分)
F(-0.5f,1.0f,-1.5f)(2分)
H(0.5f,1.0f,-0.5f)(2分)
2.已知在平面P上有两条向量v1和v2他们的值分别(2.0f,0.0f,0.0f),(0.0f,3.0f,0.0f)求出垂直与平面P的法向量v3的值为多少,求出v1与v2之间的夹角θ的度数或cos值为多少?
要求写出计算过程。
向量的模向量的倍乘
向量之和
向量的点积
向量的叉积
答:
v3=v1与v2叉积或v1×v2(3分)
v3=(y1z2–y2z1,z1x2–z2x1,x1y2–x2y1)
v3=(0.0f,0.0f,6.0f)(2分)
转换单位向量
v3=(0.0f,0.0f,1.0f)
cosθ=v1与v2单位向量的点积或v1·v2(2分)
v1的单位向量=(1.0f,0.0f,0.0f)(1分)
v2的单位向量=(0.0f,1.0f,0.0f)(1分)
cosθ=x1x2+y1y2+z1z2;
cosθ=1.0f*0.0f+0.0f*1.0f+0.0f*0.0f;
cosθ=0(1分)
θ=90°
3.已知空间中一条线段的两个顶点为d1(5.0f,3.0f,-2.0f)d2(6.0f,4.0f,-2.0f)计算出其绕(y=3,z=0)的轴旋转90°后再缩小0.5倍后的新的线段的两个顶点坐标,要求写出每一个计算后得到的新矩阵。
平移矩阵=缩放矩阵=
旋转矩阵绕x轴=绕y轴=
绕z轴=
答:
缩小0.5矩阵A=(1分)
沿Y轴平移3矩阵B=(1分)
绕X旋转90度矩阵C=(1分)
沿Y轴平移-3矩阵D=(1分)
AxB=(2分)
AxBxC=(1分)
M=AxBxCxD=(1分)
d1转换后=Mxd1=(2.5f,2.5f,0.0f)(1分)
d2转换后=Mxd2=(3.0f,2.5f,0.5f)(1分)
4.分别使用数值微分法(DDA算法)、中点画线法和Bresenham算法计算出P0(1,1)和P1(3,6)之间扫描过的点。
中点画线法
Bresenham算法
答:
数值微分法(DDA算法)
斜率由于斜率大于1增量(2分)
y
int(x+0.5)
x+0.5
1
1
1
2
1
1.4+0.5
3
2
1.8+0.5
4
2
2.2+0.5
5
3
2.6+0.5
6
3
3.0+0.5
表头2分其他每行1分
中点画线法
斜率由于斜率大于1(4分)
y
x
d
1
1
1
2
1
-3
3
2
3
4
2
-1
5
3
5
6
3
数据每行1分
Bresenham算法
斜率由于斜率大于1(4分)
y
x
e
1
1
-1
2
1
3
3
2
-3
4
2
1
5
3
-5
6
3
数据每行1分
5.使用中点画圆算法计算出以点(4,6)为圆心,半径为8的圆的1/8圆弧点坐标。
中点画圆法
答:
x
y
d
x+4
y+6
0
8
-7
4
14
1
8
-4
5
14
2
8
1
6
14
3
7
-6
7
13
4
7
3
8
13
5
6
2
9
12
6
5
10
12
表头1分前3行数据2分后面每行1分
6.使用中点椭圆算法计算出以点(4,6)为圆心,半径rx=6,ry=8的椭圆的1/4圆弧点在区域1内的坐标。
切线斜率为
区域1:
答:
区域1判断条件<(1分)
x
y
d
x+4
y+6
0
8
-215
4
14
1
8
-23
5
14
2
8
297
6
14
3
7
241
7
13
4
6
8
12
数据前4行每行2分最后1行1分
7.使用中点椭圆算法计算出以点(4,6)为圆心,半径rx=8,ry=6的椭圆的1/4圆弧点坐标。
切线斜率为,区域2的起始点为(4,6)
区域2:
答:
x
y
d
x+4
y+6
4
6
-108
8
12
5
5
208
9
11
5
4
-44
9
10
6
3
544
10
9
6
2
436
10
8
6
1
400
10
7
6
0
10
6
数据前3行每行2分后面每行1分
8.已知如下多边形,使用扫描线算法求出该多边形的活性边表。
保存小数点后1位
答:
活性边表
扫描线:
Y=5:
->->->
Y=4:
->->->
Y=3:
->
Y=2:
->
Y=1:
->
每条扫描线2分
9.已知直线段的两点(-200,-100)和(700,600)分别使用Cohen-Sutherland和梁友栋-BarSky算法计算对于区域(0,0,500,600)裁剪后的直线段,要求写出计算过程。
答:
Cohen-Sutherland算法:
裁剪顺序为上下右左,区域编码如下:
(2分)
令x0=-200y0=-100x1=700y1=600
c1=code(x0,y0)=0101c2=code(x1,y1)=0010(1分)
裁剪下边后y0=0x0===-71c1=0001(2分)
裁剪右边后x1=500y1===444c2=0000(2分)
裁剪左边后x0=0y0===56c1=0000(2分)
裁剪后的线段为(0,56)(500,444)(1分)
梁友栋-Barskey裁剪算法:
u1=0u2=1
p1=-dxq1=x0–0p1=-900q1=-200u=2/9u1=2/9u2=1(2分)
p2=dxq2=500-x0p2=900q2=700u=7/9u1=2/9u2=7/9(2分)
p3=-dyq4=y0–0p3=-700q3=-100u=1/7u1=2/9u2=7/9(2分)
p4=dyq4=600–y0p4=700q4=700u=1u1=2/9u2=7/9(2分)
裁剪后的线段为(x0+u1*dx,y0+u1*dy)(x0+u2*dx,y0+u2*dy)(1分)
(-200+2/9*900,-100+2/9*700)(-200+7/9*900,-100+7/9*700)
裁剪后的线段为(0,56)(500,444)(1分)
10.已知如下多边形进行区域裁剪,若安装p1-p6顺序遍历多边形的各条边,按顺序写出该多边形裁剪的处理线段及保留的顶点。
答:
处理线段P1P2
输出AB(2分)
处理线段P2P3
输出CP3(1分)
处理线段P3P4
输出D(1分)
处理线段P4P5
输出EP5(2分)
处理线段P5P6
输出F(1分)
处理线段P6P7
输出GP7(2分)
处理线段P7P1
输出H(1分)
11.已知空间中一点的颜色由3层纹理融合而成,最上层点的颜色值(RGBA)为(255,200,100,100),中间夹层点的颜色值为(0,0,255,80),背景色的颜色值为(100,100,100,200)计算出该点的最终颜色值为多少?
答:
第一次融合
(1分)
(1分)
(1分)
融合后颜色值为(100,78,194,80)
第二次融合
(1分)
(1分)
(1分)
融合后颜色值为(100,93,129,200)
第三次融合
(1分)
(1分)
(1分)
最终颜色值为(78,72,101)(1分)
欢迎您的下载,
资料仅供参考!
致力为企业和个人提供合同协议,策划案计划书,学习资料等等
打造全网一站式需求