计算机图形学计算题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目中所有的坐标系,均以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分)
A x
B = (2分)
A x
B x
C = (1分)
M = A x B x C x D = (1分)
d1转换后 = M x d1 = (2.5f , 2.5f, 0.0f) (1分)
d2转换后 = M x d2 = (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
111
21 1.4+0.5
32 1.8+0.5
42 2.2+0.5
53 2.6+0.5
63 3.0+0.5表头2分其他每行1分
中点画线法
斜率 由于斜率大于1 (4分)
y x d
111
21-3
323
42-1
535
63
数据每行1分
Bresenham算法
斜率 由于斜率大于1 (4分)
y x e
11-1
213
32-3
421
53-5
63
数据每行1分
5.使用中点画圆算法计算出以点(4,6)为圆心,半径为8的圆的1/8圆弧点坐标。
中点画圆法
答:
x y d x+4y+6
08-7414
18-4514
281614
37-6713
473813
562912
651012
表头1分前3行数据2分后面每行1分
6.使用中点椭圆算法计算出以点(4,6)为圆心,半径rx=6,ry=8的椭圆的1/4圆弧点在区域1内的坐标。切线斜率为
区域1 :
答:区域1判断条件 < (1分)
x y d x+4y+6
08-215414
18-23514
28297614
37241713
46812
数据前4行每行2分最后1行1分
7.使用中点椭圆算法计算出以点(4,6)为圆心,半径rx=8,ry=6的椭圆的1/4圆弧点坐标。切线斜率为,区域2的起始点为(4,6)
区域2 :
答:
x y d x+4y+6
46-108812
55208911
54-44910
63544109
62436108
61400107
60106
数据前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分)
1001
1000