计算机图形学计算题目参考答案.doc

上传人:wj 文档编号:1063062 上传时间:2023-04-30 格式:DOC 页数:12 大小:302.50KB
下载 相关 举报
计算机图形学计算题目参考答案.doc_第1页
第1页 / 共12页
计算机图形学计算题目参考答案.doc_第2页
第2页 / 共12页
计算机图形学计算题目参考答案.doc_第3页
第3页 / 共12页
计算机图形学计算题目参考答案.doc_第4页
第4页 / 共12页
计算机图形学计算题目参考答案.doc_第5页
第5页 / 共12页
计算机图形学计算题目参考答案.doc_第6页
第6页 / 共12页
计算机图形学计算题目参考答案.doc_第7页
第7页 / 共12页
计算机图形学计算题目参考答案.doc_第8页
第8页 / 共12页
计算机图形学计算题目参考答案.doc_第9页
第9页 / 共12页
计算机图形学计算题目参考答案.doc_第10页
第10页 / 共12页
计算机图形学计算题目参考答案.doc_第11页
第11页 / 共12页
计算机图形学计算题目参考答案.doc_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

计算机图形学计算题目参考答案.doc

《计算机图形学计算题目参考答案.doc》由会员分享,可在线阅读,更多相关《计算机图形学计算题目参考答案.doc(12页珍藏版)》请在冰点文库上搜索。

计算机图形学计算题目参考答案.doc

题目中所有的坐标系,均以OpenGL坐标系为准

1.使用OpenGL图形库渲染如下四棱截锥体图形,根据给定点的A、C、G的坐标推算出其余五个点B、D、E、F、H的坐标

答:

B(1.0f,-1.0f,0.0f)

D(-1.0f,-1.0f,-2.0f)

E(-0.5f,1.0f,-0.5f)

F(-0.5f,1.0f,-1.5f)

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

v3=(y1z2–y2z1,z1x2–x2z1,x1y2–x2y1)

v3=(0.0f,0.0f,6.0f) (3分其中公式2分值1分)

转换单位向量

v3=(0.0f,0.0f,1.0f) (1分)

cosθ=|v1|与|v2|的点积或|v1|·|v2|

|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

θ=90°(4分其中公式2分值2分)

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=沿Y轴平移3矩阵B=

绕X旋转90度矩阵C=沿Y轴平移-3矩阵D=

上面每个矩阵1分

AxB=AxBxC=

M=AxBxCxD=(乘的顺序正确2分,结果正确2分)

d1转换后=Mxd1=(2.5f,2.5f,0.0f)

d2转换后=Mxd2=(3.0f,2.5f,0.5f)(公式正确1分,结果正确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

(2分)

y

x

d

d

1

1

1

2*a

2

1

-3

2*(a+b)

3

2

3

2*a

4

2

-1

2*(a+b)

5

3

5

2*a

6

3

1

(标题没分,写公式占4分错1个扣1分,错1个值扣1分最多扣4分;没写公式错1个值扣1分扣满8分)

Bresenham算法

斜率由于斜率大于1

(2分)

y

x

e

e

1

1

-1

2

1

3

3

2

-3

4

2

1

5

3

-5

6

3

-1

(标题没分,写公式占4分错1个扣1分,错1个值扣1分最多扣4分;没写公式错1个值扣1分扣满8分)

5.使用中点画圆算法计算出以点(4,6)为圆心,半径为8的圆的1/8圆弧点坐标。

中点画圆法

答:

x

y

d

d

x+4

y+6

0

8

-7

2x+3

4

14

1

8

-4

2x+3

5

14

2

8

1

2(x-y)+5

6

14

3

7

-6

2x+3

7

13

4

7

3

2(x-y)+5

8

13

5

6

2

9

12

(标题没分,写公式占5分错1个扣1分,错1个值扣1分最多扣5分;没写公式错1个值扣1分扣满10分)

6.使用Bresenham椭圆算法计算出以点(3,5)为圆心,半径a=7,b=4的椭圆的1/4圆弧点的坐标。

e<0时

e>=0时

答:

x

y

e

d

e

x+3

y+5

0

4

-327

-311

3

9

1

4

-279

-215

4

9

2

4

-199

-55

5

9

3

4

-87

169

6

9

4

3

-188

-131

7

8

5

3

-12

221

8

8

6

2

49

-110

9

7

7

1

240

240

10

6

7

0

289

338

10

5

(标题没分,写公式占5分错1个扣1分,错1个值扣1分最多扣5分;没写公式错1个值扣1分扣满10分)

7.已知如下多边形,使用扫描线算法求出该多边形的活化边表。

(结果保存小数点后1位)

扫描线:

Y=1:

->

Y=2:

->

Y=3:

->

Y=4:

->->->

Y=5:

->->->

错一个节点扣1分,顺序写错每个节点扣0.5分,扫描线顺序也可以从5-1

8.已知种子填充四连通递归算法函数如下:

voidfloodfill4(intx,inty,CColoroldColor,CColornewColor)

{

CClientDCdc(this);

if(dc.GetPixel()==oldColor)

{

dc.SetPixel(x,y,newColor);

floodfill4(x-1,y,oldColor,newColor);

floodfill4(x+1,y,oldColor,newColor);

floodfill4(x,y+1,oldColor,newColor);

floodfill4(x,y-1,oldColor,newColor);

}

}

根据以上函数写出以下图形区域填充算法的过程:

为边界,为起始点

 

 

 

 

 

 

 

 

 

 

 

102

101

77

78

79

80

81

 

 

99

100

76

75

84

83

82

 

 

98

97

96

74

73

85

86

 

 

3

4

5

6

72

71

87

 

 

2

1

8

7

21

70

69

 

 

11

10

9

20

19

18

68

 

 

12

13

14

15

16

17

67

 

 

24

23

22

66

 

 

25

26

27

65

 

 

30

29

28

64

 

 

31

32

33

62

63

 

 

36

35

34

61

60

59

 

 

37

38

39

55

56

57

58

 

 

42

41

40

54

53

52

51

 

 

43

44

45

46

47

48

49

50

 

 

95

94

93

92

91

90

89

88

 

 

 

 

 

 

 

 

 

 

 

每10个序号1分,中间一个点序号写错后面所有序号都不得分

9.已知直线段的两点(-200,-100)和(700,600)分别使用Cohen-Sutherland和梁友栋-BarSky算法计算对于区域(0,0,500,600)裁剪后的直线段,要求写出计算过程。

Cohen-Sutherland算法给定公式:

左交点:

右交点:

下交点:

上交点:

答:

裁剪顺序为上下右左,区域编码如下:

(2分)

1001

1000

0001

0101

0000

0100

1010

0010

0110

令x1=-200y1=-100x2=700y2=600

(x1,y1)点的code1=0101(x2,y2)点的code2=0010(1分)

∵(code1!

=0||code2!

=0)&&code1&code2==0

∴进行裁剪

上边code1&1000=0不裁剪cdoe2&1000=0不裁剪(1分)

下边code1&0100!

=0进行裁剪

y1=0,x1=≈-71

(x1,y1)点的code1=0001

code2&0100=0不裁剪(2分)

右边code1&0010=0不裁剪

code2&0010!

=0进行裁剪

x2=500,y2=≈444

(x2,y2)点的code2=0000(2分)

左边code1&0001!

=0进行裁剪

x1=0,y2=≈56

(x1,y1)点的code1=0000(2分)

裁剪后的线段为(0,56)(500,444)

梁友栋-BarSky算法给定公式:

答:

令x1=-200y1=-100x2=700y2=600u1=0,u2=1(1分)

p1=-900q1=-200u=2/9∵p1<0u>u1成立∴u1=2/9u2=1(2分)

p2=900q2=700u=7/9∵p2>0u

p3=-700q3=-100u=1/9∵p3<0u>u1不成立∴u1=2/9u2=7/9(2分)

p4=700q4=700u=1∵p4>0u

裁剪后的点为(x1+u1(x2-x1),y1+u1(y2-y1))≈(0,56)

(x1+u2(x2-x1),y1+u2(y2-y1))≈(500,444)(1分)

10.已知如下多边形进行区域裁剪,若安装p1-p6顺序遍历多边形的各条边,按顺序写出该多边形裁剪的处理线段及保留的顶点。

答:

处理线段P1P2

输出AB(1分)

处理线段P2P3

输出CP3(1分)

处理线段P3P4

输出D(2分)

处理线段P4P5

输出EP5(1分)

处理线段P5P6

输出F(2分)

处理线段P6P7

输出GP7(1分)

处理线段P7P1

输出H(2分)

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,130,200)

第三次融合

(1分)

(1分)

(1分)

最终颜色值为(78,73,102)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2