计算机图形学计算题
- 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 值为多少?要求写出计算过程。
向量的模 222||z y x V ++= 向量的倍乘
),,(az ay ax aV =
向量之和
),,(21212121z z y y x x V V +++=+
向量的点积
21212121z z y y x x V V ++=• 向量的叉积
),,(21122112211221y x y x x z x z z y z y V V ---=⨯
答: 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倍后的新的线段的两个顶点坐标,要求写出每一个计算后得到的新矩阵。
平移矩阵 = ⎥⎥
⎥⎥⎦⎤⎢⎢⎢
⎢⎣⎡100
100010
001z y x t t t 缩放矩阵 = ⎥⎥⎥⎥⎦⎤⎢⎢⎢
⎢⎣⎡10
00000000
000z y x s s s 旋转矩阵 绕x 轴 = ⎥⎥
⎥⎥⎦⎤⎢
⎢⎢
⎢⎣⎡-10
000cos sin 00sin cos 00001
θθθθ
绕y 轴 = ⎥⎥⎥⎥⎦
⎤
⎢⎢⎢
⎢⎣⎡-10
00
0cos 0sin 00100sin 0cos θθθθ
绕z 轴 = ⎥⎥⎥⎥⎦
⎤⎢⎢⎢
⎢⎣⎡-10
00
010000cos sin 00sin cos θθ
θθ 答:缩小0.5矩阵 A = ⎥⎥⎥⎥
⎦
⎤⎢⎢⎢
⎢⎣⎡100000.500000.50000
0.5 (1分) 沿Y 轴平移3矩阵B=⎥⎥⎥⎥⎦
⎤⎢⎢⎢
⎢⎣⎡100001003010
0001 (1分)
绕X 旋转90度矩阵C=⎥⎥⎥⎥⎦
⎤⎢⎢⎢
⎢⎣⎡-100000100100
0001 (1分) 沿Y 轴平移-3矩阵D=⎥⎥
⎥⎥⎦
⎤⎢⎢⎢
⎢⎣⎡-100
01003010
0001 (1分) A x B = ⎥⎥⎥⎥
⎦⎤⎢⎢⎢
⎢⎣⎡100005.0005.105.00000
5.0 (2分) A x B x C = ⎥⎥⎥⎥⎦
⎤⎢⎢⎢
⎢⎣⎡-1000005.005.15.0000005.0 (1分) M = A x B x C x D = ⎥⎥⎥⎥⎦
⎤⎢⎢⎢
⎢⎣⎡--10005.105.005.15.000000
5.0 (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)之间扫描过的点。 中点画线法 ⎩⎨
⎧=∆≥+=∆<+=a d d b a d d b a d *20
)
(*20*2
Bresenham 算法 x y x d e e d e d e *2,0*2,再减少如果∆≥=∆-= 答:数值微分法(DDA 算法) 斜率 5.21316-0101=--=-=x x y y k 由于斜率大于1 增量4.01
1==∆=∆k
x y , (2分)
表头2中点画线法 斜率 5.21
31
6-0101=--=-=
x x y y k 由于斜率大于1 0110,y y b x x a -=-= (4分)
Bresenham 算法