当前位置:文档之家› 计算机图形学作业答案

计算机图形学作业答案

计算机图形学作业答案
计算机图形学作业答案

计算机图形学作业答案

第一章序论

第二章图形系统

1.什么是图像的分辨率?

解答:在水平和垂直方向上每单位长度(如英寸)所包含的像素点的数目。

2.计算在240像素/英寸下640×480图像的大小。

解答:(640/240)×(480/240)或者(8/3)×2英寸。

3.计算有512×512像素的2×2英寸图像的分辨率。

解答:512/2或256像素/英寸。

第三章二维图形生成技术

1.一条直线的两个端点是(0,0)和(6,18),计算x从0变到6时y所对应的值,并画出结果。

解答:由于直线的方程没有给出,所以必须找到直线的方程。下面是寻找直线方程(y =mx+b)的过程。首先寻找斜率:

m =⊿y/⊿x =(y

2-y

1

)/(x

2

-x

1

)=(18-0)/(6-0) = 3

接着b在y轴的截距可以代入方程y=3x+b求出 0=3(0)+b。因此b=0,所以直线方程为y=3x。

2.使用斜截式方程画斜率介于0°和45°之间的直线的步骤是什么?

解答:

(1)计算dx:dx=x

2-x

1

(2)计算dy:dy=y

2-y

1

(3)计算m:m=dy/dx。

(4)计算b: b=y

1-m×x

1

(5)设置左下方的端点坐标为(x,y),同时将x

end

设为x的最大值。如果

dx < 0,则x=x

2、y=y

2

和x

end

=x

1

。如果dx > 0,那么x=x

1

、y=y

1

和x

end =x

2

(6)测试整条线是否已经画完,如果x > x

end

就停止。

(7)在当前的(x,y)坐标画一个点。

(8)增加x:x=x+1。

(9)根据方程y=mx+b计算下一个y值。

(10)转到步骤(6)。

3.请用伪代码程序描述使用斜截式方程画一条斜率介于45°和-45°(即|m|>1)之间的直线所需的步骤。

假设线段的两个端点为(x1,y1)和(x2,y2),且y1

int x = x1, y = y1;

float x f, m = (y2-y1)/(x2-x1), b = y1-mx1;

setPixel( x, y );/*画一个像素点*/

while( y < y2 ) {

y++;

x f = ( y-b)/m;

x = Floor( x f +0.5 );

setPixel( x, y );

}

4.请用伪代码程序描述使用DDA算法扫描转换一条斜率介于-45°和45°(即|m| ≤1)之间的直线所需的步骤。

解答:

假设线段的两个端点(x1, y1)和(x2,y2),且x1

int x = x1, y;

float y f = y1, m = ( y2– y1) / ( x2-x1);

while( x < = x2 ) {

y = Floor( y f + 0.5 );

setPixel( x, y );

x++;

y f = y f + m;

}

5.使用Bresenham算法画斜率介于0°和45°之间的直线所需的步骤。

解答:

(1)计算初始值:

dx =x2-x1In c2 =2(dy-dx)

dy =y2-y1 d =In c1-dx

In c1 =2dy

(2)设置左下方的端点坐标为(x,y),同时将x end设为x的最大值。如果dx < 0,则x=x2,y=y2和x end=x1。如果dx > 0, 那么x=x1、y=y1

和x end=x2。

(3)在当前的(x,y)坐标画一个点。

(4)判断整条线段是否已经画完,如果x=x end就停止。

(5)计算下一像素的位置。如果d<0,那么d=d+In c1。如果d≥0,那么d=d + In c2,并且y=y+1。

(6)增加x:x=x+1。

(7)在当前的(x,y)坐标画一个点。

(8)转到步骤(4)。

6.请指出用Bresenham算法扫描转换从像素点(1,1)到(8,5)的线段时的像素位置。

首先必须找到初始值。在这个例子中, dx = x 2-x 1 = 8-1 = 7 dy = y 2-y 1 = 5-1 = 4 因此, In c 1= 2dy = 2×4 = 8 In c 1=2(dy -dx )= 2×(4-7)=-6

d =In c 1-dx =8-7=1

7. 使用Bresenham 算法扫描转换圆的步骤是什么? 解答:

(1) 设置初始变量:(h ,k )=圆心坐标;x =0;y =圆的半径r ;d =3-2r 。 (2) 测试整个圆是否已经扫描转换完。如果x>y 就停止。

(3) 以中心(h ,k )为对称点,对当前的(x ,y )坐标画8个圆上的点:

plot( x + h, y + k ) plot( -x + h, -y + k )

plot( y+ h, x +k ) plot( -y + h, -x + k ) plot( -y + h, x + k )

plot( y + h, -x + k )

plot( -x + h, y + k ) plot( x + h, -y + k )

其中plot(a,b)表示以给定的参数为中心画一个小块。

(4) 计算下一个像素的位置。如果d < 0,那么d =d +4x +6和x =x +1。如果d ≥0,那么d =d +4(x -y )+10、x =x+1和y =y -1。

(5) 转到步骤(2)。

8. 给定数据点P 0(0,0),P 1(1,2)P 2(2,1)P 3(3,-1)P 4(4,10)P 5(5,5),用三次B 样条插值法插值这些数据点,求出曲线,并找出定义三次B 样条的节点集t 0,……,t 9。 解答:

m =3, n =5,选择节点集可以有两种方案:

(1) 选择:

)(103210x t t t t <-====, )(69876n x t t t t >====

其余的节点按以下方式选择: 1,......,0,...11--=++=

++++m n i m

x x t m

i i m i

故:

23

3

21=++=

t ,

33

4

32=++=

t

(2) 三次样条的另一种方案是:

13210-====t t t t ,

69876====t t t t

其余节点按以下方式选择:

24++=i i x t ,I =0,……,n-4

故: t 4=2, t 5=3

两种方法选择节点集,其根据是数据点沿x 轴为等间距。

第四章 图形的裁剪及几何变换

1. 写出实现下述映射的规范化变换,将左下角在(1,1),右上角在(3,5)的窗口

映射到(a )规范化设备的全屏幕视区;(b )左下角在(0,0),右上角在???

?

?21,21的视区。 解答:

(a ) 窗口参数是5,1,3,1m

a x

m

i n

m a x

m

i n

====wy wy wx wx 。视区参数是1,0,1,0m

a

x m i n

m a

x

m

i

n

====vy vy vx vx 。那么4

1,2

1=

=y x s s 且

???????? ?

?--

=10

041410

21021N (b ) 窗口参数同(a )。视区参数是2

1,0,2

1,0min max max min =

==

=wy vy vx vx 。那

么8

1,41=

=

y x s s 且

???????

? ?

?--=10

081810

41041

N

2. 设R 是左下角L (-3,1),右上角为R (2,6)的矩形窗口。请写出图中的线段端点的区域编码。【图5.6 P90】

解答:

点(x ,y )的区域编码根据下面的模式设置。

比特1=sign (y -y max )=sign (y -6) 比特3=sign (x -x max )=sign (x -2) 比特2=sign (y min -y )=sign (1-y ) 比特4=sign (x min -x )=sign (-3-x ) 此处:

?

??≤>=)0(,0)

0(,1)(a a a sign

因此:

A (-4,2)→0001

B (-1,7)→1000

C (-1,5)→0000

D (3,8)→1010

E (-2,3)→0000

F (1,2)→0000

G (1,2)→0100 H (3,3)→0010 I (-4,7)→1001 J (-2,0)→1000

3. 求垂直线x 和水平线y 与21P P 四边形平行坐标轴的矩形裁剪窗口的交点。写出线段

(从),(111y x P 到),(222y x P )与(a )垂直线x =a ,(b )水平线y =b 的交点。 解答:

线段的参数方程是:

?

?

?-+=-+=)()

(121121y y t y y x x t x x 10≤≤t

(b ) 因为a x =,将它代入方程)()(121x x x a t --=得到。然后把此值再代入方程,

则交点是a x I =和

()1212

11y y x

x x a y y I -???

?

??--+= (c ) 因为b y =,将它代入方程)()(121y y y b t --=得到。然后把此值再代入方

程,则交点是b y I =和

()1212

1

1x x y

y y a x x I -???

?

??--+=

4. 如何判断一个点P (x ,y )是在由A(x 1,y 1)和B(x 2,y 2)所连接的线段的左边还是右边。 解答: 参见图所示。对于向量AB 和AP ,如果P 点在AB

的左边,根据两个向量叉乘的

X

定义,向量AB ×AP 的方向是向量K ,即xy 平面的正交方向。如果在右边,叉乘方向为-K ,此时:

J

y y I x x AP J y y I x x AB )()()()(111212-+-=-+-=

因此:

()()()()[]K x x y y y y x x AP AB 112112-----=

?

这个叉乘的方向由下式确定:

()()()()112112x x y y y y x x C -----=

5. 如果C 是正的,P 在AB 的左边。如果C 是负的,P 在AB 的右边。 6. 根据一个对象点绕原点旋转的旋转变换,写出对应的矩阵表示。 解答:

根据sin 和cos 的三角函数定义计算得到: x ′=r cos (θ+Φ),y′=r sin (θ+Φ) 和 x =r cos Φ,

y =r sin Φ

根据三角公式,得出: r cos (θ+Φ)= r (cos θcos Φ-sin θsin Φ)=x cos θ-y sin θ 和

r sin (θ+Φ)= r (sin θcos Φ+cos θsin Φ)=x sin θ-y cos θ 或

x′ = x cos θ-y sin θ,

y′ = x sin θ+y cos θ

设P′ =''x y ??

???

, P =x y ??

???且

θR =cos sin sin sin θθθ

θ-??

???

则可得出P R P ?='θ。

7. (a )写出对象绕原点旋转的旋转变换矩阵。(b )设点为P (2,-4),旋转后的新

坐标是什么?

P

B

AB ×AP K A

解答:

(a ) 根据上题: R 30°=cos 30sin 30sin 30

cos 30o

o

o

o ??- ?

??

=12

21

2

2??- ? ?

? ???

(b ) 新的坐标可以通过矩阵乘法得到:

12212

2??-

? ??

24??

?-??

=21?? -?

8. 写出点Q (x ,y )绕定点P (h ,k )旋转的旋转变换。 解答:

通过三步确定:(1)平移对象,使它的旋转中心P 与原点重合;(2)绕原点旋转;(3)将P 平移回(h ,k )。 使用v =h I +k J 作为平移向量,P R ,θ可通过组合变换得到: v v O T R T R -'??=θθ,

9. 写出下列关于原点的缩放变换:(a )在X 轴方向缩放a 单位 (b )在Y 轴方向缩放

b 单位(

c )同时分别在X 轴方向缩放a 单位,在Y 轴方向缩放b 单位。 解答:

(a ) 点P (x ,y )缩放变换后得到点(ax ,y ),可以用形式S a ,1?P 的矩阵表示,

即:

00

1a

?? ???x y ?? ???=ax y ?? ???

(b ) 与(a )类似,可以用形式S 1,b ,P 的矩阵表示,即

1

00

b ?? ???x y ?? ???=x by ?? ???

(c ) 在两个方向上的缩放可以通过x′=ax 和y′=by 变换得到S a ,b ?P 。写成矩阵

形式有:

00

a

x ax b y by ??????= ? ? ???????

10. 写出以直线L 作为反射轴的反射变换矩阵。

解答:

设图中所示的直线L 交y 轴于B (0,b ),倾斜角为θ(与x 轴夹角)。然后用已知的交换来描述整个过程:

(1) 平移交点B 到原点。

(2) 旋转-?θ使直线L 跟x 轴重合。 (3) 关于x 轴镜面对称。 (4) 旋转?θ回到原方向。 (5) 将B 平移回(0,b )。 其交换表示为:

M L =T v * R θ* M x * R --θ* T -v 其中,v=bJ

11.

矩阵11a b

??

???

被称为同时错切变换或简称错切变换。在b =0的特例下叫x 方向错切变换;a =0时叫y 方向错切变换。说明这个变换在a =2和b =3时对正方形A (0,0),B (1,0),C (1,1),D (0,1)进行变换的结果。 解答:

图中(a )是原始正方形,图(b )是x 方向错切变换,图(c )是y 方向错切变换,图(d )是在两个方向上的错切变换。

12.

寻找圆方程对应的xy 坐标方程,假设x′y′坐标是通过对xy 坐标在x 方向缩放

a 单位,在y 方向缩放

b 单位得到的。

()()12

2

='+'y x

解答:

由坐标缩放变换方程可以得到:

x a x 1'=

y b

y 1'=

进行替换,得到:

12

2

=??

?

??+??? ??b y a x C(1,1) B A D A ’ B ’ A ’ A ’ 3,4) (a) (b) (c)

(d)

应注意缩放的结果,圆方程经过变换后变为xy 坐标系的椭圆方程。

13. 写出直线方程b mx y +=''对应的xy 坐标方程,假设''y x 坐标系是由xy 坐标

系旋转90°得到。 解答:

旋转坐标变换方程可以写成:

'90sin 90cos 'y y x x =?+?=,

x y x y -=?+?-=90cos 90sin '

代入原方程式得到b my x +=-,写成y 的方程式,得m b x m y //)/1(--=

第五章 交互技术及用户接口 第六章 三维形体的表示 第七章 三维形体输出流水线

1. 二次旋转变换定义为先绕x 轴再绕y 轴旋转的变换,(a )写出这个变换的矩阵;(b )

旋转的先后顺序对结果有影响吗? 解答:

(a ) 通过组合两个旋转矩阵可以得到变换T :

J x I y R R T ,,θθ?=

??????

?

??-???????

??-=10

0cos sin 00sin cos 00001

10

00cos 0sin 00100sin 0cos x

x

x x y

y y

y θθθθθθθθ ??????

?

?

?--=10

00cos cos sin cos sin 0sin cos 00cos sin sin sin cos x

y x

y y x x x

y x

y y θθθθθθθθθθθθ (b ) 通过J y I x R R ,,θθ?可以得到变换矩阵:

??????

?

?

?

--10

00cos cos sin sin cos 0cos sin cos sin sin 0sin 0cos y

x x

y

x y x x y x y

y θθθθ

θθθθθθθθ 这个矩阵与(a )的不同,所以旋转的顺序有影响。

2. 旋转轴L 是向量V 和通过轴的点P 决定的。试写出绕L 轴旋转θ°的变换。 解答:

通过下面步骤找到要求的变换:

(1) 将P 平移到原点。 (2) 使V 平行于向量K 。

(3) 绕K 旋转?θ。

(4) 逆变换步骤(2)和(1)。 因此有:

P V K V p L T A R A T R ----????=,1

1

,θθ

3. 写出关于xy 平面对称面的镜面反射变换。

解答:

由图得知P (x ,y ,z )得对称点是P '(x ,y ,-z )。其反射变换是:

????

? ?

?-=10

0010

001

M

4. 用原点作为投影中心,请写出满足下述条件的透视变换:通过点R 0(x 0,y 0,z 0)

并且有法线向量K n J n I n N 321++=。 解答:

设P (x ,y ,z )点投影到()z y x P '''',,点。向量PO 和O P '方向相同,因此存在一个数α,使得PO a O P ='且

z z y y x x ααα='='=',,

现在求α得值。因为所有在视平面上的点()z y x P '''',,满足下面的方程:

0321d z n y n x n ='+'+'

y

其中,0302010z n y n x n d ++=,将z z y y x x ααα='='=',,代入方程得到:

z

n y n x n d 3210

++=

α 这个投影变换不能用3×3矩阵变换公式表示。但是使

用齐次坐标表示三维点时,

可以写出投影变换得4×4矩阵:

??????

?

??=00000000003

2

1

000,0

n n n d d d Per R N

将此矩阵与点P 的齐次坐标表示P (x, y, z, 1)连接运算,得到

),,,(321000z n y n x n z d y d x d P ++',这就是上面所得到的()z y x P '''',,齐次坐标。

5. 写出投影到视平面z =d 的透视投影,其中投影中心在原点(0,0,0)。

解答:

平面z =d 平行于xy 平面(且距离为d 个单位)。因此视平面的法线向量N 和xy 平面的法线向量K ,即N =K 。选择R 0(0,0,d )视见参考点,根据上题可以确定参数:

)1,0,0(),,(321=n n n N

),0,0(),,(0000d z y x R =

因此:

d z n y n x n d =+++0302010

所以投影矩阵是:

??????

?

?

?=01

00000000000

,d d d Per R N

6. 写出投影到xy 平面,方向是cK bJ aI V ++=的平行投影方程。

解答:

从可以看出向量V 和P P '有相同方向。即kV P P ='。比较分量,则有:

kc z z kb y y ka x x =-'=-'=-',,

因此:

z c b y y z c

a x x c

z k -

='-

='-

=,,

在3×3的矩阵形式中,有:

???????

? ?

?--=00

01001c b

c a P V

ar

所以P Par P V ?='

7. 如何确定一个点P 在观察体的内部还是外部? 解答:

一个平面空间将空间分成两部分。平面的一般方程是:

0)()()(030201=-+-+-z z n y y n x x n

对于任意点P (x ,y ,z ),若定义一个标量函数f (P ),有:

)()()(),,()(030201z z n y y n x x n z y x f P f -+-+-=≡

如果sign f (P )=sign f (Q ),那么说P 点和Q 点在同一边(相对平面而言)。令

N L R B r f f f f f ,,,,和F f 分别表示顶平面、底平面、左平面、右平面、近平面、远平面。

另外,L 和R 分别是窗口的左下角点和右上角点,且P b 和P f 分别是后裁剪平面和前裁剪平面的参考点。 那么如果下面都成立,则P 点在观察体内:

对于平面f r 来说,P 和L 在同一边;

对于平面f B 来说,P 和R 在同一边; 对于平面f R 来说,P 和L 在同一边; 对于平面f L 来说,P 和R 在同一边; 对于平面f N 来说,P 和P b 在同一边;

P ’(x ’,y ’,V=a1+b3

P(x,y,z)

对于平面f F 来说,P 和P f 在同一边。 相当于: sign f T (P) = sign f T (L) sign f L (P) = sign f L (R) sign f B (P) = sign f B (R) sign f N (P) = sign f N (P b ) sign f R (P) = sign f R (L)

sign f F (P) = sign f F (P f )

8. 对于三维Cohen -Sutherland 裁剪算法,下述观察体作为裁剪区域时,线段端点的

区域编码分别是什么?(a )规范化平行观察体;(b )规范化透视观察体。 解答:

整个过程逻辑上可以参照第5章的二维裁剪算法。在三维情况下,描述观察体的平面把三维空间分成6个重叠的外部区域(即观察体的上下左右),加上观察体的内部。因此需要用6比特区域编码。设P (x ,y ,z )为端点的坐标。

(a ) 对于规范化平行观察体,根据下述规定把每个比特设为真(1)或

假(0)

比特1=端点在观察体上方=sign (y -1) 比特2=端点在观察体下方=sign (-y ) 比特3=端点在观察体右方=sign (x -1) 比特4=端点在观察体左方=sign (-x ) 比特5=端点在观察体后方=sign (z -1) 比特6=端点在观察体前方=sign (-z )

如果(a )为正的,则sign (a )=1,否则为0。

(b ) 对于规范化平行透视体:

比特1=端点在观察体上方=sign (y -z ) 比特2=端点在观察体下方=sign (-z -y )

比特3=端点在观察体右方=sign (x -z ) 比特4=端点在观察体左方=sign (-z -x )

比特5=端点在观察体后方=sign (z -1) 比特6=端点在观察体前方=sign P (z f -z )

线段的分类是(1)如果两个区域编码都是000000,则为可见线段;(2)如果两个区域编码的按位与操作不是000000,则为完全不可见线段;(3)如果两个区域编码的按位与操作是000000,则为要裁剪线段

9. 写出线段与下述规范化观察体边界平面相交的交点:(a )平行投影;(b )透视投影。 解答:

设P 1(x 1,y 1,z 1)和P 2(x 1,y 1,z 1)为线段的两个端点。线段的参数方程是:

t z z z z t y y y y t x x x x )(,)(,)(121121121-+=-+=-+=

交点参数是:

2

110P P N P R N t I ???-=

其中N 是法线向量,R 0是平面的参考点。

(a ) 平行规范化观察体边界平面是x =0,x =1,y =0,y =1,z =0和z =1。对于平面x

=1,有N =I 和R 0(1,0,0)。所以有:

1

21)1(x x x t I ---=

如果0≤t 1≤1,线段与平面有交点,交点坐标为:

1)1)((121121=---

-+=x x x x x x x

)1)((121121y y y y y y y ---

-+=

)1)((1

21121z z z z z z z ---

-+=

同理可以求出与其他平面的交点。

(b ) 透视规范化观察体边界平面是x =z ,x =-z ,y =z ,y =-z ,z =z f 和z =1。为了求

出与x =z 平面的交点,将平面方程写成x -z =0。根据这个方程,有法线向量N =I -K ,参考点是R 0(0,0,0)。所以有:

)

)((12121

1z z x x z x t I ----

=

如果0≤t 1≤1,则将代入线段的参数方程计算交点。同理可以求出与其他平面的交点。

第八章 消隐及真实感图形生成技术

1. 已知点P 1(1,2,0)、P 2(3,6,20)和观察点P 3(2,4,6),试判断从C (0,0,-10)观察时,哪个点挡了其他点。 解答:

连接观察点C (0,0,-10)和点P 1(1,2,0)的直线是

x =t ,y =2t , z =-10+10t

为了判断P 2(3,6,20)是否在这条线上,可以将点带入方程,得x =3时t =3,在t =3时x =3,y =6,z =20,所以P 2在过C 点和P 1点的投影线上。

接着以C 为基准,判断哪个点在前面。C ,P 1,P 2分别在这条线的t =0,1,3位置上。由t 值可知,P 1在P 2前面,即P 1遮挡了P 2。

现在判断P 3(2,4,6)是否在这条线上。x=2时t =2,y =4,z =10。所以P 3(2,4,6)不在这条投影线上,既没有遮挡P 1,P 2,也没有被P 1、P 2遮挡。

2. 为什么需要隐藏面消影法?

解答:需要用隐藏面消影法来判断哪些物体和表面遮挡了放在它们后面的物体和表面,从而产生更逼真的图像。

3. 需要用哪两步判断给定的点P 1(x 1,y 1,z 1)是否遮挡了另一个点P 2(x 2,y 2,z 2)? 解答:必须判断(1)两个点是否在同一个投影线上。(2)如果是,哪个点在另一个点

4. 为什么在平行投影时更容易确定隐藏面?

解答:平行投影没有灭点,因而,任意点P (a ,b ,z )和其他有同样x 和y 坐标的点位于同一投影线上。这样只需比较z 来判断哪个点更靠近观察者。

5. Z 缓冲器算法是怎样判断哪个面应消影的?

解答:Z 缓冲器算法设置了一个二维数组,类似于帧缓冲器。但是,Z 缓冲器存放的是每个像素点的深度值,而不是帧缓冲器中的颜色值。Z 缓冲器的初始值设置为某个大的数值,通常是后裁剪平面的距离。在判断像素(x ,y )上的哪个平面更靠近观察者时,就可以简单的比较Z 缓冲器中的深度值和当前平面的深度值。如果当前平面的值比Z 缓冲器中的值小(即距视点更近),则用新值替换原Z 缓冲器中的值,像素的颜色值也变成新平面的颜色值。

6. 局部光照模型和全局光照模型的不同之处是什么?

解答:

局部光照模型主要是考虑光源发出的光对物体的直接影响。另外,全局光照模型除了处理光源发出的光之外,还考虑其他辅助光的影响,如光线穿过透明或半透明物体,以及光线从一个物体表面反射到另一个表面等。

7. 物体的颜色很大程度上取决于它的漫反射系数。如果k d =(0.8,0.4,0)且光源是

蓝色的,那么物体是什么颜色的? 解答:黑色。由k d 得知,物体不反射蓝光,又光源没有红光和绿光。

8. 参见上题,如果光源用品红色的,会是怎样的情况? 解答:红色。因为物体只反射品红色光的红色部分。

9. 假设点P 1在扫描线y 1上且亮度为I 1,点P 2在扫描线y 2上且亮度为I 2。给出y 方向上的递推公式,该公式可以用线性插值计算P 1和P 2之间所有扫描线的亮度值I ’。 解答:设P 1为开始点,则从一条扫描线到下一条扫描线的亮度变化值为

)/()(1212y y I I I --=?

所以:

11I I ='且I I I i i ?+'='-1,其中i=2,…..,y 2-y 1。

10. 参见上题,如果在第5条线上的点P 1有RGB 颜色(1,0.5,0),在第15条

线上的点P 2有RGB 颜色(0.2,0.5,0.6)。那么在第8条线上的点是什么颜色? 解答: 因为

06

.0)515/()06.0(0)515/()5.05.0(08

.0)515/()12.0(=--=?=--=?-=--=?R G R

所以有[])18.0,5.0,76.0(06.030,035.0),08.0(31=?+?+-?+为第8条线上点的颜

11.说出表面明暗处理的三个部分和用于计算每个部分的辅助光线。 解答:局部贡献(阴影光线),反射光贡献(镜面反射光线)和透射光贡献(镜面透射光线)。

12.一束光线表示为td s t r +=)(,其中K J I s 32-+=且K I d 2+=。分别求出对应于t =0,1,2.5和3的光线上的点坐标。 解答:

)

3,1,5(35)63()32()3()2,1,5.4(25.4)53()5.22()5.2()

1,1,3(3)23()12()1()

3,1,2(32)03()02()0(→++=+-+++=→++=+-+++=-→-+=+-+++=-→-+=+-+++=K J I K J I r K J I K J I r K J I K J I r K J I K J I r

1.

二维空间中的直线可以表示为代数方程b mx y +=或参数向量方程

td s t L +=)(,其中+∞<<∞-t 。对于J I s +=和J I d -=,试给出等价的代数方

程。 解答1:

因为J t I t td s t L )1()1()(-++=+=,所以有: t y t x -=+=1,1 即

2=+y x 或2+-=x y

解答2:

在直线上找到两个点:

)

0,2(2)1()1,1()0(→=+=→+==I d s L J I s L

所以有 )12/()10()1/()1(--=--x y ,即2+-=x y 。

2.

判断光线是否平行于xy 平面的一个平面相交。

解答:

这个平面的方程是z =c ,其中c 为常量。如果光线与这个平面相交,且交点是(x i ,y i ,c ),为了得到x i 和y i ,对以下方程求t :

cK J y I x td s i i ++=+

其中,有K z J y I x s s s s ++=,

K z J y I x d d d d ++=

所以:

???

??=+=+=+c

tz z y ty y x tx x d s

i d s i d s 当z d =0时,光线平行于平面(不相交)。当z s =c 时,光线的起始点在平面上(不相交)。 否则,用第三个方程计算t :

d

s z z c t -=

如果t<0,则光线负方向的延长线与平面相交。如果t>0,则光线本身与平面相交,交点的坐标x i 、y i 用两个方程求出。

3.

判断光线是否平行于xy 平面的由x min 、x max 、y min 和y max 定义的矩形区域相交。

解答:首先判断是否与xy 平面相交。如果不相交,则光线与该区域不相交。否则,求出交点坐标x i 和y i 。如果x min ≤ x i ≤ x max 且y min ≤ y i ≤ y max ,则光线与区域相交,否则不相交。

4. 判断光线是否平行于xy 平面的一个三角形(或凸多边形)区域相交。 解答:

首先判断光线是否与xy 平面相交。如果不相交,则光线与平面中的任何区域不相交。否则,求出交点坐标x i 和y i 。如果点在三角形和凸多边形区域所有的边上或边内,则点在改区域内部。

现在仅考虑xy 平面(忽略z )。为了判断交点(x i ,y i )是在平面区域一条边的内侧还是外侧,先选择边上的一个点,接着定义一个指向边的外侧的向量n ,再用所选择的点定义向量v ,用交点定义向量v i ,则有: ()()

()()()()

?

??

???>=-?90,090,090,0)(θθθ在边的内侧在边上在边的外侧i i i i i i i y x y x y x v v n

5. 设n=I+J+2K 为通过点P 0=(1,1,0)的平面的法线向量。试判断s=-2I+J+2K ,d =I -K 的光线是否与平面相交。 解答:因为:

01)1(20111<-=-?+?+?=?d n

所以光线与平面相交。引入:

K

I K J I K

z z J y y I x x p s s s 23)20()11()]2(1[)()()(000-=-+-+--=-+-+-=

计算: 11

)

2(20131=--?+?+?=

??=

d

n p n t

所以交点是 )1,1,1(),,(-=+++d s d s d s z z y y x x 。

6.

半径为R 、中心在原点的球体的隐式方程是02222=-++R z y x 。试判断光线s

+td 是否与球体相交。 解答:

设K z J y I x s s s s ++=,K z J y I x d d d d ++=。用d s d s d s tz z ty y tx x +++,,分别替换x ,y 和z :

()()0)(2

2

22

=-+++++R

tz z ty y tx x d

s

d

s d s

展开并重新组合各项: ()

()()

022

2

2

2

2

2

22=-++++++++R

z y x t z z y y x x z y x

d d d d s d s d s d

d d

022

2

2

2

=-+?+R

s dt s t d

球体中心在(0,0,0)。

计算机图形学实验报告

《计算机图形学》实验报告姓名:郭子玉 学号:2012211632 班级:计算机12-2班 实验地点:逸夫楼507 实验时间:15.04.10 15.04.17

实验一 1 实验目的和要求 理解直线生成的原理;掌握典型直线生成算法;掌握步处理、分析实验数据的能力; 编程实现DDA 算法、Bresenham 中点算法;对于给定起点和终点的直线,分别调用DDA 算法和Bresenham 中点算法进行批量绘制,并记录两种算法的绘制时间;利用excel 等数据分析软件,将试验结果编制成表格,并绘制折线图比较两种算法的性能。 2 实验环境和工具 开发环境:Visual C++ 6.0 实验平台:Experiment_Frame_One (自制平台) 3 实验结果 3.1 程序流程图 (1)DDA 算法 是 否 否 是 是 开始 计算k ,b K<=1 x=x+1;y=y+k; 绘点 x<=X1 y<=Y1 绘点 y=y+1;x=x+1/k; 结束

(2)Mid_Bresenham 算法 是 否 否 是 是 是 否 是 否 开始 计算dx,dy dx>dy D=dx-2*dy 绘点 D<0 y=y+1;D = D + 2*dx - 2*dy; x=x+1; D = D - 2*dy; x=x+1; x

3.2程序代码 //-------------------------算法实现------------------------------// //绘制像素的函数DrawPixel(x, y); (1)DDA算法 void CExperiment_Frame_OneView::DDA(int X0, int Y0, int X1, int Y1) { //----------请实现DDA算法------------// float k, b; float d; k = float(Y1 - Y0)/float(X1 - X0); b = float(X1*Y0 - X0*Y1)/float(X1 - X0); if(fabs(k)<= 1) { if(X0 > X1) { int temp = X0; X0 = X1; X1 = temp; }

计算机图形学试题附答案完整版

名词解释 将图形描述转换成用像素矩阵表示的过程称为扫描转换。 1.图形 2.像素图 3.参数图 4.扫描线 5.构造实体几何表示法 6.投影 7.参数向量方程 8.自由曲线 9.曲线拟合 10.曲线插值 11.区域填充 12.扫描转换 三、填空 1.图形软件的建立方法包括提供图形程序包、和采用专用高级语言。 2.直线的属性包括线型、和颜色。 3.颜色通常用红、绿和蓝三原色的含量来表示。对于不具有彩色功能的显示系统,颜色显示为。 4.平面图形在内存中有两种表示方法,即和矢量表示法。 5.字符作为图形有和矢量字符之分。 6.区域的表示有和边界表示两种形式。 7.区域的内点表示法枚举区域内的所有像素,通过来实现内点表示。 8.区域的边界表示法枚举区域边界上的所有像素,通过给赋予同一属性值来实现边界表示。 9.区域填充有和扫描转换填充。 10.区域填充属性包括填充式样、和填充图案。 11.对于图形,通常是以点变换为基础,把图形的一系列顶点作几何变换后,

连接新的顶点序列即可产生新的变换后的图形。 12.裁剪的基本目的是判断图形元素是否部分或全部落在之内。 13.字符裁剪方法包括、单个字符裁剪和字符串裁剪。 14.图形变换是指将图形的几何信息经过产生新的图形。 15.从平面上点的齐次坐标,经齐次坐标变换,最后转换为平面上点的坐标,这一变换过程称为。 16.实体的表面具有、有界性、非自交性和闭合性。 17.集合的内点是集合中的点,在该点的内的所有点都是集合中的元素。 18.空间一点的任意邻域内既有集合中的点,又有集合外的点,则称该点为集合的。 19.内点组成的集合称为集合的。 20.边界点组成的集合称为集合的。 21.任意一个实体可以表示为的并集。 22.集合与它的边界的并集称集合的。 23.取集合的内部,再取内部的闭包,所得的集合称为原集合的。 24.如果曲面上任意一点都存在一个充分小的邻域,该邻域与平面上的(开)圆盘同构,即邻域与圆盘之间存在连续的1-1映射,则称该曲面为。 25.对于一个占据有限空间的正则(点)集,如果其表面是,则该正则集为一个实体(有效物体)。 26.通过实体的边界来表示一个实体的方法称为。 27.表面由平面多边形构成的空间三维体称为。 28.扫描表示法的两个关键要素是和扫描轨迹。 29.标量:一个标量表示。 30.向量:一个向量是由若干个标量组成的,其中每个标量称为向量的一个分量。 四、简答题 1. 什么是图像的分辨率?

2011计算机图形学复习题

一、填空题(共10分,每空1分) 1、目前常用的PC 图形显示子系统主要由3个部件组成: 帧缓冲存储器、显示控制器、ROM BIOS 。 2、 图形的输入设备有 键盘、鼠标、光笔; 图形的显示设备有CRT 显示器、LCD 、投影仪。 3、形体的定义和图形的输入输出都是在一定的坐标系下进行的,通常这些坐标系分为:建模坐标系,用户坐标系,观察坐标系,规格化设备坐标系和 设备坐标系。 4、在多边形的扫描转换过程中,主要是通过确定穿越多边形区域的扫描线的覆盖区间来填充,而区域填充则是从 给定的位置 开始涂描直到 指定的边界条件 为止。 5、X 扫描线算法中,每次用一条扫描线进行填充,对一条扫描线填充的过程可分为4个步骤:(求交)、(排序)、(交点配对)、(区间填色)。 6、一个交互式计算机图形系统应具有 计算 、 存储 、 对话 、 输入 和 输出 等五个方面的功能。 7. 将三维物体变为二维图形的变换称为(投影变换),其有两种基本方式:(平行投影)、(透视投影)。 8、用一组型值点来指定曲线曲面的形状时,形状完全通过给定的型值点列,用该方法得到的曲线曲面称为曲线曲面的(拟和),而用控制点列来指定曲线曲面的形状时,得到的曲线曲面不一定通过控制点列,该方法称为曲线曲面的(逼近)。 9、对于基本几何变换,一般有平移、旋转、反射和错切等,这些基本几何变换都是相对于(坐标原点)和(坐标轴)进行的几何变换。 二、选择题(共20分,每题2分) 1.计算机图形学与计算机图象学的关系是( B )。 A )计算机图形学是基础,计算机图象学是其发展 B )不同的学科,研究对象和数学基础都不同,但它们之间也有可转换部分 C )同一学科在不同场合的不同称呼而已 D )完全不同的学科,两者毫不相干 2. 分辨率为2048×1024的显示器需要多少字节位平面数为32的帧缓存?( B ) A )64K B ; B )8MB ; C )32MB ; D )16MB 3.下列有关反走样的叙述,错误的是( A ) A )减少或克服图形失真的技术叫做反走样; B )提高分辨率是反走样的方法之一; C )半色调技术是利用多级光强提高视觉分辨率的技术; D )对于多灰度或多彩色显示器,图形的边缘可采用模糊技术而改善锯齿显示效果。 4.计算机绘图设备一般使用什么颜色模型?( A ) A )RG B ; B )CMY ; C )HSV ; D )HLS 5.使用下列二维图形变换矩阵,将产生变换的结果为( D ) ??002

计算机图形学复习题

计算机图形学复习题

计算机图形学复习题 简答与名词解释 计算机图形学 扫描转换 像素 窗口 举例说明计算机图形学的应用 图形显示的坐标变换过程 构造曲线的方法 形体的层次结构 Gouraud亮度插值明暗法的处理过程 算法 Cohen-Sutherland线段裁剪算法 多边形扫描转换算法 内点表示的四连通算法 边界表示的四连通填充算法 边界表示的扫描线填充算法 Graham和Javis凸壳算法 Cohen—Sutherland线段裁剪算法 Bezier曲线的几何作图算法 Bezier曲线的分裂作图算法 简单多边形的点包含算法 凸多边形的点包含算法(折半查找算法) 线面比较法消除隐藏线 深度排序算法 Z-缓冲算法 消除隐藏面的扫描线算法 写出变换 保持点(3,6)固定,x方向放大3倍,y方向放大2倍 保持点(x0,y0)固定,x方向放大3倍,y方向放大2倍 绕坐标(3,6)顺时针旋转90度 绕坐标(x0,y0)顺时针旋转θ度 使线段A(0,0,0)、B(3,2,1)与Y轴重合且AB与Y正向一致的变换 使线段A(0,0,0)、B(3,2,1)与Z轴重合且AB与Z正向一致的变换 使线段A(0,0,0)、B(3,2,1)与X轴重合且AB与X正向一致的变换 产生对 Z=5平面对称的图形 产生对 Y=6平面对称的图形 产生对 X=-6平面对称的图形 投影中心在原点,投影平面在Z=d的透视投影矩阵 设斜交平行投影方向是(l,m,n),求做这个投影的变换矩阵 填空题 是指用计算机对输入图形进行识别的技术。 在光栅扫描显示方式中象素坐标是行和列的位置值,只能取,是理

想线段上点坐标的近似值。 如果从区域中的一个象素出发,经连续地向上下左右四个相邻象素的移动,就可以到达区域内的任意另一个象素,就称区域是。 将区域内由边界点限定的相连接的同一行内不具有新值newvalue的一组象素称为一个,象素段用它最右边的象素来标识 构成复杂景物的每一个简单物体都在各自所处的空间的坐标系,也就是中设计和描述 用户坐标系,也称,是用户引入描述整个形体的坐标系,也称视坐标系或目坐标系,为说明观察的姿态而引入,也就是观察者所处的位置 ,也称显示器坐标系或屏坐标系,是各种图形设备自身规定的在显示表面上采用的坐标系 就是将用户坐标系窗口内的图形变换到显示屏幕设备坐标系的视见区中以产生显示。 平行投影可以分为两种类型,即和斜交投影。 正交投影时,投影方向与投影平面的相同,也就是说投影方向垂直于投影平面。 最常见的正交投影是正视投影、和侧视投影,也就是我们常说的三视图。 正交投影还有另一种常见的情形是,这种投影要求投影平面的法线方向,即投影方向与三个坐标轴的夹角都相等。 当平行投影中投影平面的法线方向与投影方向不同时就得到 计算机图形学是指用计算机产生对象的技术。 能够正确地表达一个对象性质、结构和行为的所以的描述信息,称为这个对象的。 计算几何学是研究和数据处理的学科。 光栅扫描图形显示器中,屏幕上可以点亮或熄灭的最小单位称为。 CRT工作方式有两种:随机扫描和方式。 屏幕上每个象素对应的颜色或亮度值要存储在中。 就是去掉窗口外面不可见部分,保留窗口内的可见部分的过程。 在进行点对简单多边形的包含性检验时,可采用射线法。当由点P竖直向下的射线恰好通过多边形的顶点或某一边时,交点计数可采取法来处理。 形体的信息可以分为几何信息和信息。 通常把表示一幅图形的显示命令序列,称为该图形的。 比较常用的多面体表示法是三表表示法,即采用三个表: ,用来存放多面体各顶点的坐标;边表,指出哪两个顶点之间有多面体的边;面表,指出哪些边围成了多面体的表面。 消除隐藏线的线面比较法的最先一步就是利用判断出所有可能的可见面,可能可见面上的线段是可能可见线。 在Z-缓冲算法中,对每一个点,不仅需要有一个更新缓冲器存储各点的象素值,而且还需要有一个存储相应的z值。更新缓冲存储器初始化为背景值,z缓冲存储器初始化为可以表示的最大z值。

计算机图形学实验报告 (2)

中南大学信息科学与工程学院 实验报告实验名称 实验地点科技楼四楼 实验日期2014年6月 指导教师 学生班级 学生姓名 学生学号 提交日期2014年6月

实验一Window图形编程基础 一、实验类型:验证型实验 二、实验目的 1、熟练使用实验主要开发平台VC6.0; 2、掌握如何在编译平台下编辑、编译、连接和运行一个简单的Windows图形应用程序; 3、掌握Window图形编程的基本方法; 4、学会使用基本绘图函数和Window GDI对象; 三、实验内容 创建基于MFC的Single Document应用程序(Win32应用程序也可,同学们可根据自己的喜好决定),程序可以实现以下要求: 1、用户可以通过菜单选择绘图颜色; 2、用户点击菜单选择绘图形状时,能在视图中绘制指定形状的图形; 四、实验要求与指导 1、建立名为“颜色”的菜单,该菜单下有四个菜单项:红、绿、蓝、黄。用户通过点击不同的菜单项,可以选择不同的颜色进行绘图。 2、建立名为“绘图”的菜单,该菜单下有三个菜单项:直线、曲线、矩形 其中“曲线”项有级联菜单,包括:圆、椭圆。 3、用户通过点击“绘图”中不同的菜单项,弹出对话框,让用户输入绘图位置,在指定位置进行绘图。

五、实验结果: 六、实验主要代码 1、画直线:CClientDC *m_pDC;再在OnDraw函数里给变量初始化m_pDC=new CClientDC(this); 在OnDraw函数中添加: m_pDC=new CClientDC(this); m_pDC->MoveTo(10,10); m_pDC->LineTo(100,100); m_pDC->SetPixel(100,200,RGB(0,0,0)); m_pDC->TextOut(100,100); 2、画圆: void CMyCG::LineDDA2(int xa, int ya, int xb, int yb, CDC *pDC) { int dx = xb - xa; int dy = yb - ya; int Steps, k; float xIncrement,yIncrement; float x = xa,y= ya; if(abs(dx)>abs(dy))

计算机图形学基础期末考试试题

一、填空题 1.将多边形外部一点A与某一点B用线段连接,若此线段与多边形边界相交的次数为??????????,则点B在多边形外部。若此线段与多边形边界相交的次数为??????????,则点B在多边形内部。 2.生成直线的四点要求是_______________________,____________________________,____________________________________,速度要快。 3.由5个控制顶点Pi(i=0,1,…4)所决定的3次B样条曲线,由??????????段3次B样条曲线段光滑连接而成。 4.用于减少或克服在“光栅图形显示器上绘制直线、多边形等连续图形时,由离散量表示连续量引起的失真”的技术叫??????????。 5.图形的数学表示法一般有??????????,??????????,??????????。 1.一个交互性的计算机图形系统应具有、、、、 输入等五方面的功能。 2.阴极射线管从结构上可以分为、和。 3.常用的图形绘制设备有和,其中支持矢量格式。 4.PHIGS和GKS将各种图形输入设备从逻辑上分为六种:定位设备、笔划设 备、、、和。 5.通常可以采用和处理线宽。 6.齐次坐标表示就是用维向量表示n维向量。 7.平行投影根据可以分为投影和投影。 8.一个交互式计算机图形处理系统包括图形软件和_____________,图形软件又分为 _____________、_____________和三部分。 9.构成图形的要素包括和,在计算机中通常用采用两种方法来表示 图形,他们是和。 10.荫罩式彩色显像管的结构包括、、和。 11.目前常用的PC图形显示子系统主要由3个部件组成:、和一 个ROM BIOS芯片。 12.在交互输入过程中,图形系统中有_____________、、和其组 合形式等几种输入(控制)模式。 13.填充一个特定区域,其属性选择包括、和。 14.计算机中表示带有颜色及形状信息的图和形常用和参数法,其中用参数法描 述的图形称为,用描述的图形称为。 15.在显示技术中,我们常常采用提高总的光强等级。 16.常用的交互式绘图技术有、、和。

计算机图形学复习题及答案

计算机图形学复习题及答 案 This manuscript was revised on November 28, 2020

中南大学现代远程教育课程考试模拟复习试题.及参考答案 计算机图形学 一、名词解释 1.图形 2.像素图 3.参数图 4.扫描线 5.构造实体几何表示法 6.投影 7.参数向量方程 8.自由曲线 9.曲线拟合 10.曲线插值 11.区域填充 12.扫描转换 二、判断正误(正确写T,错误写F) 1.存储颜色和亮度信息的相应存储器称为帧缓冲存储器,所存储的信息被称为位 图。() 2.光栅扫描显示器的屏幕分为m行扫描线,每行n个点,整个屏幕分为m╳n个点,其中每个点称为一个像 素。―――――――――――――――――――――() 3.点阵字符用一个位图来表示,位图中的0对应点亮的像素,用前景色绘制;位图中的1对应未点亮的像素,用背景色绘 制。――――――――――――――――-() 4.矢量字符表示法用(曲)线段记录字形的边缘轮廓线。―――――――――――() 5.将矢量字符旋转或放大时,显示的结果通常会变得粗糙难看,同样的变换不会改变点阵字符的显示效 果。―――――――――――――――――――――――――()

6.在光栅图形中,区域是由相连的像素组成的集合,这些像素具有相同的属性值或者它们位于某边界线的内 部。―――――――――――――――――――――――() 7.多边形的扫描变换算法不需要预先定义区域内部或边界的像素值。――――――() 8.齐次坐标表示法用n维向量表示一个n+1维向 量。―――――――――――――() 9.实体的边界由平面多边形或空间曲面片组成。―――――――――――――――() 10.平面多面体表面的平面多边形的边最多属于两个多边形,即它的表面具有二维流形的性 质。―――――――――――――――――――――――――――――――() 11.实体几何性质包括位置、长度和大小 等。―――――――――――――――――() 12.实体的拓扑关系表示实体之间的相邻、相离、方位、相交和包含等关系。―――() 13.实体的扫描表示法也称为推移表示法,该表示法用一个物体和该物体的一条移动轨迹来描述一个新的物 体。――――――――――――――――――――――――() 14.如果投影空间为平面,投影线为直线,则称该投影为平面几何投影。――――-() 15.平面几何投影分为两大类:透视投影和平行投影。――――――――――――- () 16.当投影中心到投影面的距离为有限值时,相应的投影为平行投 影。――――――() 17.当投影中心到投影面的距离为无穷大时,相应的投影即为透视投影。―――――()

计算机图形学实验报告

目录

实验一直线的DDA算法 一、【实验目的】 1.掌握DDA算法的基本原理。 2.掌握DDA直线扫描转换算法。 3.深入了解直线扫描转换的编程思想。 二、【实验内容】 1.利用DDA的算法原理,编程实现对直线的扫描转换。 2.加强对DDA算法的理解和掌握。 三、【测试数据及其结果】 四、【实验源代码】 #include

#include #include #include GLsizei winWidth=500; GLsizei winHeight=500; void Initial(void) { glClearColor(1.0f,1.0f,1.0f,1.0f); glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0,200.0,0.0,150.0); } void DDALine(int x0,int y0,int x1,int y1) { glColor3f(1.0,0.0,0.0); int dx,dy,epsl,k; float x,y,xIncre,yIncre; dx=x1-x0; dy=y1-y0; x=x0; y=y0; if(abs(dx)>abs(dy)) epsl=abs(dx); else epsl=abs(dy); xIncre=(float)dx/(float)epsl; yIncre=(float)dy/(float)epsl; for(k=0;k<=epsl;k++) { glPointSize(3); glBegin(GL_POINTS); glV ertex2i(int(x+0.5),(int)(y+0.5)); glEnd(); x+=xIncre; y+=yIncre; } } void Display(void) { glClear(GL_COLOR_BUFFER_BIT); DDALine(100,100,200,180); glFlush(); }

计算机图形学复习资料

第一章 一、什么是计算机图形学? 计算机图形学是研究如何利用计算机来显示、生成和处理图形的原理、方法和技术的一门学科。 国际标准化组织(ISO)定义: 计算机图形学是研究通过计算机将数据转换为图形,并在专门显示设备上显示的原理、方法和技术的学科 电气与电子工程协会(IEEE)定义: 计算机图形学是利用计算机产生图形化的图像的艺术和学科。 三、举例说明计算机图形学有哪些应用,分别用来解决什么实际问题? 应用领域: 1.计算机辅助设计与制造(CAD,CAM) 用于大楼,汽车,飞机,建筑工程,电子路线等的设计和制作过程中。 2.计算机辅助绘图 计算机辅助绘图的典型例子包括计算机可视化,近年来,这种技术已用于有限元分析的后处理,分子模型构造,地震数据处理,大气科学,生物信息及生物化学等领域。 3.计算机辅助教学(CAI) 4.办公自动化和电子出版社 5.计算机艺术 6.在工业控制及交通方面的应用 7.在医疗卫生方面的应用 8.图形用户界面 四、人机交互,什么是一致性原则 人机交互学是一门关于设计、评估和执行交互式计算机系统以及研究由此而发生的相关现象的学科。 一致性原则:指在设计系统的各个环节时,应遵从统一的、简单的规则,保证不出现例外和特殊的情况,无论是信息显示还是命令输入都应如此 一致性原则包含这样一些内容:1.一个特定的图符应该始终只有一个含义而不能依靠上下文来代表多个动作或对象;2.菜单总是放在相同的关联位置,使用户不必总是去寻找;3.键盘上的功能键,控制键以及鼠标上的按钮的定义需要前后一致;4.总是使用一种彩色编码,使相同的颜色在不同的情况下不会有不同的含义;5.输入时交互式命令和语法的一致性等 第二章 四、CRT的组成和工作原理是什么? CRT(Cathode Ray Tube)阴极射线管 ?是一种真空器件,它利用电磁场产生高速的、经过聚焦的电子束,偏转到屏幕的不

《计算机图形学》复习试题

计算机图形学模拟试卷 计算机图形学课程试卷(卷) 注意:1、本课程为必修(表明必修或选修),学时为 51 ,学分为 3 2、本试卷共 3 页;考试时间 120 分钟;出卷时间:年 12 月 3、姓名、学号等必须写在指定地方;考试时间:年 1 月 11 日 4、本考卷适用专业年级:任课教师: (以上内容为教师填写) 专业年级班级 学号姓名 一、名词解释(15分) 1.国际标准化组织(ISO)对计算机图形学的定义

2. 象素图 3. 正投影 4. 纹理 5. 位图 二.单项选择题(1.5×10=15分) ( )1、在TC 环境下编译绘图程序进行图形初始化时,要寻找文件的格式是?______。 A ).DOC B ).CPP C ).C D ).BGI ( )2、图形系统是由四部分组成,分别为 A).应用系统结构;图形应用软件;图形支撑软件;图形设备。 B).计算机;显示器;打印机;图形应用软件。 C).计算机;图形设备;图形支撑软件;图形应用软件。 D).计算机;图形软件;图形设备;应用数据结构。 ( )3、使用下列二维图形变换矩阵: T=???? ??????111020002 将产生变换的结果为______ 。 A )图形放大2倍; B )图形放大2倍,同时沿X 、Y 坐标轴方向各移动1个绘图单位; C )沿X 坐标轴方向各移动2个绘图单位; D )上述答案都不对。 ( )4、图形显示器的工作方式为 A ).文本方式 B ).图形方式 C ).点阵方式 D ).文本与图形方式 ( )5、透视投影中主灭点最多可以有几个? A) 3 B)2 C)1 D)0 ( )6、在用射线法进行点与多边形之间的包含性检测时,下述哪一个操作不正确? A) 当射线与多边形交于某顶点时且该点的两个邻边在射线的一侧时,计数0次 B) 当射线与多边形交于某顶点时且该点的两个邻边在射线的一侧时,计数2次 C) 当射线与多边形交于某顶点时且该点的两个邻边在射线的两侧时,计数1次 D) 当射线与多边形的某边重合时,计数1次 ( )7、下列有关平面几何投影的叙述语句中,正确的论述为

计算机图形学复习资料及答案

2.1 计算机图形系统主要具有哪些功能? 答案:1. 计算功能 2. 存储功能 3. 输入功能 4. 输出功能 5. 交互功能 2.5 分辨率为800×600,能显示216种颜色的显示器,至少需要选用帧缓存的容量为 (1)512KB (2)1MB (3)2MB (4)3MB 。 答案:(2) 2.7 灰度等级为256,分辨率为1024×768的显示器,至少需要选用帧缓存的容量为 (1)512K (2)1M (3)2M (4)3M 。 答案:(2) 3.4 多边形的顶点和点阵表示各有什么优缺点? 答案:顶点表示是用多边形的顶点序列来描述多边形。该表示几何意义强、占内存少、几何变换方便;但它不能直观地说明哪些像素在多边形内,故不能直接用于面着色。 点阵表示用位于多边形内的像素的集合来描述多边形。该方法虽然没有多边形的几何信息,但便于用帧缓存表示图形,可直接用于面着色。 3.5 在多边形的扫描线算法中,是如何处理奇点的? 答案:为使每一条扫描线与多边形P 的边界的交点个数始终为偶数,规定当奇点是多边形P 的极值点时,该点按两个交点计算,否则按一个交点计算。在实际计算过程中,可采用如下方法处理非极值点:若i P 是非极值点,则将i i P P 1-, 1+i i P P 两边中位于扫描线i y y =上方的那条边在i P 处截去一个单位长,这样就可以保证扫描线i y y =只和i i P P 1-,1 +i i P P 中的一边相交,只有一个交点。 3.6 任意给定五边形的五个顶点坐标,利用多边形填充的扫描线算法,编写程序生成一个实心五边形。 答案:(略) 3.11 解释走样和反走样的概念,以及反走样的几种表现形式。 答案:图形信号是连续的,而它们在光栅显示器上对应的图形则是由一系列相同亮度的离散像素组成。用离散的像素表示连续的直线或多边形的边界必然会引起图形的失真,即光滑的线段变成了阶梯的形状,这种现象就称为走样。用于减轻或消除这种效果的技术就称为反走样。 光栅图形的走样现象除产生阶梯状的边界外,还有图形的细节失真、狭小图形遗失等。 3.12 简要叙述几种反走样算法的原理和优缺点。 答案:1、提高分辨率的反走样算法 2、区域采样的反走样算法 3、加权区域采样的反走样算法 (具体原理、优缺点见课本) 4.2 写出下列二维图形变换的变换矩阵 (1). 沿x 轴正向移动一个绘图单位,同时,沿y 轴负向移动一个绘图单位。 '101'011x x y y ????????=+????????-????????,'101'01110011x x y y ?????? ??????=-???????????? ?????? (2). 绕原点逆时针旋转90度 '01'10x x y y -?????? =???????????? (3). 沿x 轴负向移动2个绘图单位,同时,沿y 轴正向移动2个绘图单位。

计算机图形学实验报告

计算机图形学 实验报告 姓名:谢云飞 学号:20112497 班级:计算机科学与技术11-2班实验地点:逸夫楼507 实验时间:2014.03

实验1直线的生成 1实验目的和要求 理解直线生成的原理;掌握典型直线生成算法;掌握步处理、分析 实验数据的能力; 编程实现DDA算法、Bresenham中点算法;对于给定起点和终点的 直线,分别调用DDA算法和Bresenham中点算法进行批量绘制,并记 录两种算法的绘制时间;利用excel等数据分析软件,将试验结果编 制成表格,并绘制折线图比较两种算法的性能。 2实验环境和工具 开发环境:Visual C++ 6.0 实验平台:Experiment_Frame_One(自制平台)。 本实验提供名为 Experiment_Frame_One的平台,该平台提供基本 绘制、设置、输入功能,学生在此基础上实现DDA算法和Mid_Bresenham 算法,并进行分析。 ?平台界面:如错误!未找到引用源。所示 ?设置:通过view->setting菜单进入,如错误!未找到引 用源。所示 ?输入:通过view->input…菜单进入.如错误!未找到引用 源。所示 ?实现算法: ◆DDA算法:void CExperiment_Frame_OneView::DDA(int X0, int Y0, int X1, int Y1) Mid_Bresenham法:void CExperiment_Frame_OneView::Mid_Bresenham(int X0, int Y0, int X1, int Y1)

3实验结果 3.1程序流程图 1)DDA算法流程图:开始 定义两点坐标差dx,dy,以及epsl,计数k=0,描绘点坐标x,y,x增 量xIncre,y增量yIncre ↓ 输入两点坐标x1,y1,x0,y0 ↓ dx=x1-x0,dy=y1-y0; _________↓_________ ↓↓ 若|dx|>|dy| 反之 epsl=|dx| epsl=|dy| ↓________...________↓ ↓ xIncre=dx/epsl; yIncre=dy/epsl ↓ 填充(强制整形)(x+0.5,y+0.5); ↓←←←← 横坐标x+xIncre; 纵坐标y+yIncre; ↓↑ 若k<=epsl →→→k++ ↓ 结束 2)Mid_Bresenham算法流程图开始 ↓ 定义整形dx,dy,判断值d,以及UpIncre,DownIncre,填充点x,y ↓ 输入x0,y0,x1,y1 ______↓______ ↓↓ 若x0>x1 反之 x=x1;x1=x0;x0=x; x=x0;

计算机图形学复习题及答案

计算机图形学复习题及答 案 Newly compiled on November 23, 2020

中南大学现代远程教育课程考试模拟复习试题.及参考答案 计算机图形学 一、名词解释 1.图形 2.像素图 3.参数图 4.扫描线 5.构造实体几何表示法 6.投影 7.参数向量方程 8.自由曲线 9.曲线拟合 10.曲线插值 11.区域填充 12.扫描转换 二、判断正误(正确写T,错误写F) 1.存储颜色和亮度信息的相应存储器称为帧缓冲存储器,所存储的信息被称为位 图。() 2.光栅扫描显示器的屏幕分为m行扫描线,每行n个点,整个屏幕分为m╳n个点,其中每个点称为一个像 素。―――――――――――――――――――――()

3.点阵字符用一个位图来表示,位图中的0对应点亮的像素,用前景色绘制;位图中的1对应未点亮的像素,用背景色绘 制。――――――――――――――――-() 4.矢量字符表示法用(曲)线段记录字形的边缘轮廓线。―――――――――――() 5.将矢量字符旋转或放大时,显示的结果通常会变得粗糙难看,同样的变换不会改变点阵字符的显示效 果。―――――――――――――――――――――――――() 6.在光栅图形中,区域是由相连的像素组成的集合,这些像素具有相同的属性值或者它们位于某边界线的内 部。―――――――――――――――――――――――() 7.多边形的扫描变换算法不需要预先定义区域内部或边界的像素值。――――――() 8.齐次坐标表示法用n维向量表示一个n+1维向 量。―――――――――――――() 9.实体的边界由平面多边形或空间曲面片组成。―――――――――――――――() 10.平面多面体表面的平面多边形的边最多属于两个多边形,即它的表面具有二维流形的性 质。―――――――――――――――――――――――――――――――() 11.实体几何性质包括位置、长度和大小 等。―――――――――――――――――()

计算机图形学复习题带答案

一.判断题(请在后面括号中打T或F)1.阴极射线管的技术指标主要是分辨率和显示速度 ; ( Y ) 2.光栅扫描式图形显示器可看作是点阵单元发生器,可直接从单元阵列中的一个可编地址的象素画一条直线到另一个可编地址的象素 ; ( N )3.计算机图形学标准通常是指数据文件格式标准和子程序界面标准; ( Y )4.在种子填充算法中所提到的八向连通区域算法同时可填充四向连通区 ; ( Y )5.边填充算法中是将扫描线与多边形交点左方的所有象素取补; ( N )6.插值得到的函数严格经过所给定的数据点;逼近是在某种意义上的最佳近似;( Y )7.齐次坐标提供了坐标系变换的有效方法,但仍然无法表示无穷远的点;( N )8.若要对某点进行比例、旋转变换,首先需要将坐标原点平移至该点,在新的坐标系下做比例或旋转变换,然后在将原点平移回去;( Y )9.显式方程和参数曲线均可以表示封闭曲线或多值曲线;( N ) 10. 凡满足G'连续的曲线同时满足C'连续条件,反之则不成立;( N ) 11.计算机图形生成的基本单位是线段。( F ) 12.一个逻辑输入设备可以对应多个物理输入设备。( T ) 13.DDA(微分方程法)是Bresenham算法的改进。( F ) 14.光的强度计算公式通常表示为: I = 0.59I + 0.30I + 0.11I ( T ) 15.Bezier曲线具有对称性质。( T ) 16.Gourand光照模型能够即使出高光部位的亮度。( F ) 17. NURBS曲线方法不能够提供标准解析曲线和自由曲线的统一数学 表达。( F ) 18.Phong算法的计算量要比Gourand算法小得多。( F ) 19.齐次坐标系不能表达图形中的无穷远点。( F ) 20.欧拉公式 v – e + f = 2 也适用于三维形体中的相关信息描述。( T ) 二.单选题 1.下面关于反走样的论述哪个是错误的?( D ) A.提高分辨率; B.把象素当作平面区域进行采样; C.采用锥形滤波器进行加权区域采样; D.增强图象的显示亮度; 2.多边形填充时,下述哪个论述是错误的?( C ) A.多边形被两条扫描线分割成许多梯形,梯形的底边在扫描线上,腰在多边形的边 上,并且相间排列;

计算机图形学试题及答案

一、 判断题(10x1=10分) 1、 0阶参数连续性和0阶几何连续性的定义是相同的。( 正确 ) 2、 Bezier 曲线可做局部调整。( 错误 ) 3、 字符的图形表示分为点阵和矢量两种形式。( 正确 ) 4、 LCD 表示(液晶显示器)发光二极管显示器。( 错误 ) 5、 使用齐次坐标可以将n 维空间的一个点向量唯一的映射到n+1维空间中。( 错误 ) 二、 填空题(15x2=30分) 1、常用坐标系一般可以分为:建模坐标系、用户坐标系、(6观察坐标系、(7)规格化设备坐标系、(8)设备坐标系。 2、在多边形的扫描转换过程中,主要是通过确定穿越多边形区域的扫描线的覆盖区间来填充,而区域填充则是从(9)给定的位置开始涂描直到(10)指定的边界条件为止。 3、一个交互式计算机图形系统应具有(11)计算 、(12)存储、(13)对话、(14)输入和输出等五个方面的功能。 三、 简答题(5x6=30分) 1、 什么叫做走样?什么叫做反走样?反走样技术包括那些? 答:走样指的是用离散量表示连续量引起的失真。 为了提高图形的显示质量。需要减少或消除因走样带来的阶梯形或闪烁效果,用于减少或消除这种效果的方法称为反走样。 其方法是①前滤波,以较高的分辨率显示对象;②后滤波,即加权区域取样,在高于显示分辨率的较高分辨率下用点取样方法计算,然后对几个像素的属性进行平均得到较低分辨率下的像素属性。 2、 试说明一致缩放(s x =s y )和旋转形成可交换的操作对。 答:???? ? ???? ?-=??????????-???????????=10 00cos sin 0sin cos 10 0cos sin 0sin cos 10 00001θθθθ θθθθ y y x x y x s s s s s s T 因为s x =s y ,故有T 1=T 2,所以一致缩放(s x =s y )和旋转可以形成可交换的操作对。 5、用参数方程形式描述曲线曲面有什么优点? 答:①点动成线;②可以满足几何不变性的要求;③可以避免斜率带来的问题; ④易于定界;⑤可以节省工作量;⑥参数变化对各因变量的影响明显。 四、 利用中点Bresenham 画圆算法的原理推导第一象限从y=x 到x=0圆弧段的扫描转换算法(要求写清原理、误差函数、递推公式)。(10分) 解:x 方向为最大走步方向,x i+1=x i -1,y i+1由d 确定 d i =F(x m ,y m )=(x i -1)2+(y i +0.5)2-R 2 ⑴ d i <0时,点在圆内,x i+1=x i -1, y i+1= y i +0.5 d i+1=F(x m ,y m )= (x i -2)2+(y i +1.5)2-R 2 =x i 2-4x i +4+y i 2+3y i +1.52-R 2 =(x i -1)2-2x i +3+(y i +0.5)2+2y i +2-R 2 = d i -2x i +2y i +5 = d i +2(y i -x i )+5 ⑵ di ≥0时,点在圆外,x i+1=x i -1,y i+1=y i d i+1=F(x m ,y m )=(x i -2)2+(y i +0.5)2-R 2 =x i 2-4x i +4+(y i +0.5)2-R 2 = di -2xi+3 五、 如下图所示多边形,若采用改进的有效边表算法进行填充,试写出该多边形的ET 表和当扫描线Y=4时的AET 表。(本题10分) 六、 解:ET 表: 六、假设在观察坐标系下窗口区的左下角坐标为(wxl=10,wyb=10),右上角坐标为(wxr=50,wyt=50)。设备坐标系中视区的左下角坐标为(vxl=10,vyb=30), 右上角坐标为(vxr=50,vyt=90)。已知在窗口内有一点p(20,30),要将点p 映射

计算机图形学复习资料

计算机图形学复习指导 一、考试大纲 要求掌握计算机图形学和图形系统所必须的基本原理,其主要内容包括:(一)计算机图形学和图形系统基本知识 计算机图形学研究对象及应用领域;图形系统的硬软件及图形标推接口。(二)二维基本图形生成算法 直线和二次曲线生成的常用算法;字符和区域填充的实现方法。 (三)图形的剪裁和几何变换 窗口视图变换;二维图形的裁剪的原理与方法;二维和三维图形的各种几何变换及其表示。 (四)三维物体的表示方法与输出显示处理 各种不同类型曲面的参数表示;实体的定义、性质及各种几何表示方法;投影变换原理与实现;观察空间的定义和转换;三维裁剪。 (五)常用的光学模型及其算法实现 (六)消隐显示和阴影生成等实现真实感图形的常用技术 二、复习指南 (一)计算机图形学和图形系统基本知识 1.计算机图形学研究对象及应用领域 2.图形硬件设备 3.图形软件系统 4.图形标准接口 (二)二维图形生成 1.直线的生成算法 (1)生成直线的常用算法---逐点比较法、数字微分(DDA)法和Bresenham 算法。 (2)直线属性——线型、线宽和线色。 2.曲线的生成算法 (1)二次曲线的生成算法---圆弧的逐点比较插补法、圆/椭圆弧的角度数字微分(DDA)法、Bresenham 画圆算法和参数拟合法。 (2)自由曲线的设计---抛物线参数样条曲线、Hermite 曲线、三次参数样条曲线、Bezier 曲线和B 样条曲线。 3.字符 (1)字符编码---ASCII 码和汉字国标码。 (2)矢量字符的存储与显示。 (3)点阵字符的存储与显示。 4.区域填充 (1)种子填充算法。 (2)扫描转换填充算法。 (3)区域填充属性---式样、颜色和图案。 (三)图形的剪裁和几何变换 1.窗口视图变换

2015年计算机图形学期末复习题(学生版)

期末复习题 一.填空题 1.X扫描线算法中,每次用一条扫描线进行填充,对一条扫描线填充的过程可分为4个步骤:求交、排序、交点配对、区域填色。 2.一组型值点来指定曲线曲面的形状时,形状完全通过给定的型值点列,用该方法得到的曲线曲面称为曲线曲面的拟和,而用控制点列来指定曲线曲面 的形状时,得到的曲线曲面不一定通过控制点列,该方法称为曲线曲面 的逼近。 3.在中点画线算法中(假设直线的斜率00,下一个点取_____________,d的增量表达式为_____________;若d<0,下一个点取_____________,d的增量表达式为_____________。 4.种子填充算法的填充区域可以分为_________连通区域和____________连通区域。 5、在生成圆弧的正负法中,设圆的方程为 F(x,y)=X2+Y2-R2=0;假设求得 Pi 的 坐标为(xi,yi);则若F(xi,yi)<0,下一个点取_____________;若 F(xi,yi)>0, 下一个点取_____________。 6、在Cohen-Sutherland线段裁剪算法中,假设线段P1P2的编码分别为 CODE1、 CODE2,则若_____________成立,表示线段 P1P2 是显然可见线段;若 _____________成立,表示线段P1P2是显然不可见线段。 7.常用的直线扫描转换算法有:_____________,_______________, _______________。 8.曲线和曲面的基本表示方法有两种:______________,______________。参数表 示,非参数表示。 9.反走样的目的是_______________________________________________。

计算机图形学实验报告

计算机图形学 实验报告 学号:20072115 姓名: 班级:计算机 2班 指导老师:何太军 2010.6.19

实验一、Windows 图形程序设计基础 1、实验目的 1)学习理解Win32 应用程序设计的基本知识(SDK 编程); 2)掌握Win32 应用程序的基本结构(消息循环与消息处理等); 3)学习使用VC++编写Win32 Application 的方法。 4)学习MFC 类库的概念与结构; 5)学习使用VC++编写Win32 应用的方法(单文档、多文档、对话框); 6)学习使用MFC 的图形编程。 2、实验内容 1)使用WindowsAPI 编写一个简单的Win32 程序,调用绘图API 函数绘制若干图形。(可选任务) 2 )使用MFC AppWizard 建立一个SDI 程序,窗口内显示"Hello,This is my first SDI Application"。(必选任务) 3)利用MFC AppWizard(exe)建立一个SDI 程序,在文档视口内绘制基本图形(直线、圆、椭圆、矩形、多边形、曲线、圆弧、椭圆弧、填充、文字等),练习图形属性的编程(修改线型、线宽、颜色、填充样式、文字样式等)。定义图形数据结构Point\Line\Circle 等保存一些简单图形数据(在文档类中),并在视图类OnDraw 中绘制。 3、实验过程

1)使用MFC AppWizard(exe)建立一个SDI 程序,选择单文档; 2)在View类的OnDraw()函数中添加图形绘制代码,说出字符串“Hello,This is my first SDI Application”,另外实现各种颜色、各种边框的线、圆、方形、多边形以及圆弧的绘制; 3)在类视图中添加图形数据point_pp,pp_circle的类,保存简单图形数据,通过在OnDraw()函数中调用,实现线、圆的绘制。 4、实验结果 正确地在指定位置显示了"Hello,This is my first SDI Application"字符串,成功绘制了圆,椭圆,方形,多边形以及曲线圆弧、椭圆弧,同时按指定属性改绘了圆、方形和直线。成功地完成了实验。 结果截图: 5、实验体会 通过实验一,了解了如用使用基本的SDI编程函数绘制简单的图

相关主题
文本预览
相关文档 最新文档