计算机图形学计算题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档