计算机图形学试题真题完整版详细解析

计算机图形学试题真题完整版详细解析
计算机图形学试题真题完整版详细解析

计算机图形学期末真题+答案(两套) 一选择题:

1、以计算机中所记录的形状参数与属性参数来表示图形的一种方法叫做( ),一般把它描述的图形叫做( );而

用具有灰度或颜色信息的点阵来表示图形的一种方法是( ),它强调图形由哪些点组成,并具有什么灰度或色彩,一般把它描述的图形叫做( )。A

A 参数法、图形、点阵法、图像

B 点阵法、图像、参数法、图形

C 参数法、图像、点阵法、图形

D 点阵法、图形、参数法、图像 2、下列设备中属于图形输出设备的是( B ) ○

1鼠标○2LCD ○3键盘○4 LED ○

5打印机○6扫描仪○7绘图仪○8触摸屏 A ○

1○3○6○8 B ○2○4○5○7 C ○2○5○6○7 D ○4○6○7○8 3. 下面给出的四个选项中( D )是绕Z 轴负向旋转θ的三维旋转变换矩阵。

A ?????????

???-1000

0cos sin 00sin cos 00001θθθθ B ?????

????

???-10000cos 0sin 00100sin 0cos θθθθ C ?????

????

???-10

010000cos sin 00sin cos θθθθ D ?????

???????-10

010000cos sin 00sin cos θθθθ 4. 下面给出的四个选项中,( A )不是Bezier 曲线具有的性质。 A 局部性 B 几何不变性 C 变差缩减性 D 凸包性

5、B 样条曲线中,按照节点矢量T 的不同可以将B 样条分为均匀B 样条,开放均匀B 样条和非均匀B 样条,以下

选项中属于开放均匀B 样条节点矢量的是(C )。 A 、T =(0,1,2,3,4,5,6)

B 、T =(0,0,1,1,2,2,3,3)

C 、T =(0,0,0,1,2,3,4,5,5,5)

D 、T =(0,0.1,0.2,0.2,0.5,1)

二、填空题(共8小题,每空1分,总计25分,请直接在原题上作答)

1、一个交互式计算机图形系统应具有( 计算 )、( 存储 )、( 对话 )、( 输入 )、

( 输出 )等五个方面的功能。

2. 将三维物体变为二维图形的变换称为(投影变换),其有两种基本方式:(平行投影)、(透视投影)。

3、形体的定义和图形的输入输出都是在一定的坐标系下进行的,通常这些坐标系分为:建模坐标系, (用户坐标系),(观察坐标系),规格化设备坐标系和 (设备坐标系)。

4、X 扫描线算法中,每次用一条扫描线进行填充,对一条扫描线填充的过程可分为4个步骤:(求交)、(排序)、(交点配对)、(区间填色)。

5、平面几何投影可分为两大类,分别是:(透视投影),(平行投影)。

6、用一组型值点来指定曲线曲面的形状时,形状完全通过给定的型值点列,用该方法得到的曲线曲面称为曲线曲面的(拟和),而用控制点列来指定曲线曲面的形状时,得到的曲线曲面不一定通过控制点列,该方法称为曲线曲面的(逼近)。

7、对于基本几何变换,一般有平移、旋转、反射和错切等,这些基本几何变换都是相对于(坐标原点)和(坐标轴)

进行的几何变换。

三、简答题(共3小题,每小题5分,总计15分,请直接在原题上作答)

1、走样与反走样的定义是?反走样技术包括那些?

答:走样指的是用离散量表示连续量引起的失真。

为了提高图形的显示质量。需要减少或消除因走样带来的阶梯形或闪烁效果,用于减少或消除这种效果的方法称为反走样。

其方法是①前滤波,以较高的分辨率显示对象;②后滤波,即加权区域取样,在高于显示分辨率的较高分辨率下用点取样方法计算,然后对几个像素的属性进行平均得到较低分辨率下的像素属性。

2.如下图所示,裁减窗口为正方形,采用逐边裁件算法,依次按左、下、右、

上的顺序,用四条窗口边界裁减多边形ABCDE。试写出每条框口边界裁减后

输出的新的多边形的顶点序列。

答:左边界裁减后:ABCD12 下边界裁减后:4B56D123

右边界裁减后:4B7D123 上边界裁减后:4B789123

3、Bezier曲线在端点处的一阶导数为:p’(0)=n(P1-P0),p’(1)=n(P n-P n-1),二阶导数为:p”(0)=n(n-1)((P2-P1)-(P1-P0)),

p”(1)=n(n-1)((P n-2-P n-1)-(P n-1-P n))。写出如图2所示的两段三次Bezier曲线在连接点处的G1,G2连续性条件。答:因为是三次Bezier曲线,所以有n=3。

根据G1连续性条件有:p’(1)=a* p’(0)即:Q1-Q0= a*(P3-P2)

图2

又根据G2连续性条件有:

p ”(1)=b*p ”(0)即:Q 0-2Q 1+Q 2=b*(P 1-2P 2+P 3)

四、证明题(本题5分,请直接在原题上作答)

试证明一个绕原点的旋转变换和一个均匀比例变换是可交换的变换对。

证明:?????

??

???-=?????????????????????-=10

0cos sin 0sin cos 100000010

0cos sin 0sin cos 1θθθθ

θθθθS S S S S S

T ????

?

?????-=???????

???-???????????=10

0cos sin 0sin cos 10

00cos sin 0sin cos 10000

002θθθθ

θθθθ

S S S S S S

T T 1=T 2,所以一个绕原点的旋转变换和一个均匀比例变换是可交换的变换对。

五、(本题10分)利用中点Bresenham 画圆算法的原理推导第一象限从y=0到x=y 圆弧段的扫描转换算法(设半径为R ,

要求写清原理、误差函数、递推公式)。

解:算法原理:如图a 所示,从y=0到x=y 圆弧段即为逆时针方向,此时当

y 方向走一步时,x 方向能否走一步需要根据判别式进行判断,推导如下:

先构造函数F(x,y)=x 2+y 2-R 2,对于圆上点F(x,y)=0;对于圆外点F(x,y)>0;

圆内点F(x,y)<0。

假设M 为Pr 和Pl 的中点即M(x i -0.5,y i +1)

所以判别式为:

d=F(x M ,y M )=F(x i -0.5,y i +1)= (x i -0.5)2+( y i +1)2-R 2

当d<0时,如图b ,下一点取Pr (x i ,y i +1) 当d>0时,如图c ,下一点取Pl(x i -1,y i +1) 当d =0时,任取上述情况中一种即可。

误差项的递推:如图b 所示,当d<0时,取Pr (x i ,y i +1),欲判断下一个象素,应计算:

d’=F(x i -0.5,y i +2)=d+2y i +3,即d 的增量为2y i +3;

如图c 所示,当d>0时,取Pl(x i -1,y i +1),欲判断下一个象素,应计算:

d’=F(x i -1.5,y i +2)=d-2x i +2y i +3, 即d 的增量为-2x i +2y i +3。 绘制第一个点为(R,0),所以d 的初始值为

d 0=F (R-0.5,1)=1.25-R

六、(本题15分)如右图所示的多边形,若采用

改进的有效边表算法进行填充,在填充

时采用“下闭上升”的原则(即删除y=y max 的边之后再填充)试画出该多边形的ET 表和当扫描线Y=3和Y=8时的AET 表。

多边形P 0P 1P 2P 3P 4P 5P 6P 0

x 图a

图c

解:ET 表如下:

当扫描线Y=8时的AET 表:

当扫描线Y=3时的AET 表:

七、(本题15分)如图所示四边形ABCD ,求绕P (5,

时针旋转90度的变换矩阵,

并求出各端点坐标,画出变换后的图形。

解:

????

?????????????????-???????????--=14501000110

0090cos 90sin 090sin 90cos 14501

001

T ??

??

?

?????--=119001010??????

?

???????

=???????

???--???????????????11065216613

8119001010114

717137114

第二套

1、 考虑三个不同的光栅系统,分辨率依次为480640?,10241280?,20482560?。欲存储每个像素12位,

这些系统各需要多大的帧缓冲器(字节数)?

答:480640?需要的帧缓存为KB 4508/12480640=?? 10241280?需要的帧缓存为KB 19208/1210241280=?? 20482560?需要的帧缓存为KB 76808/1220482560=?? 3、按照所构造的图形对象来分,点、曲线、平面、曲面或实体属于( ),而山、水、云、烟等自然界丰富多彩的对

象属于( )。A

A 、规则对象、不规则对象

B 、规则对象、属性对象

C 、不规则对象、几何对象

D 、不规则对象、属性对象

4、对于区域内外测试中,常常使用奇-偶规则测试的方法,按照该规则测试

图形,如图1所示,试选出以下属于外部点的是( D )。

A 、M 点

B 、P 点

C 、O 点

D 、N 点

5、B 样条曲线中,按照节点矢量T 的不同可以将B 样条分为均匀B 样条,开

放均匀B 样条和非均匀B 样条,以下选项中属于开放均匀B

T =(0,1,

2,3,4,5,6)

B 、T =(0,0,1,1,2,2,3,3)

C 、T =(0,0,0,1,2,3,4,5,5,5)

D 、T =(0,0.1,0.2,0.2,0.5,1)

七、(本题10分)试用Liang-Barsky 算法裁剪如图所示

线段。

解:

A(-2,6) x1=-2, y1=6 B(7,-2) x2=7, y2=-2

窗口:wxl=0, wxr=4, wyb=0, wyt=3 * ??

?-+=-+=)

12(1)

12(1y y U y y x x U x x 0≤U ≤1

P 1=-Δx=-(7+2)=-9 q 1=x1-wxl=-2 U 1=2/9 P 2=Δx=9 q 2=wxr-x1=6 U 2=2/3 P 3=-Δy=-(-2-6)=8 q 3=y1-wyb=6 U 3=3/4 P 4=Δy=-8 q 4=wyt-y1=3 U 4=3/8 U k =

k

k

p q (k=1、2、3、4)

Umax=max (0,0

Umin=min(1,0

>k p k

U )=min(1, 2/3, 3/4)= 2/3

将Umax , Umin 代入方程组* 中求得直线与窗口的两个交点: x max =11/8, y max =3 x min =4, y min =2/3

即将A ’(11/8,3) B ’(4,2/3)直线保留,AA ’B ’B 删去。 八、(本题10分)如图所示,物体ABCDEFGH 进行如下变换,

写出其变换矩阵并求出复合变换后顶点的齐次坐标。 1、 平移使点C 与点P (1,-1,0)重合; 2、绕z 轴旋转60°。

解:平移点C 与点P 重合的平移矩阵为

??

???

??

??

???-=10200100001000011T 绕z 轴旋转60°矩阵为?

????????????

?-=10

0010

0000022

12

32321

T 所以,复合变换后的矩阵为T1*T2,有:

?

???

?

??????

?

????????????=??????????????????????????+--+-=??

??

?

?

?

?

?

???

????????????=*????????????????????????--+--+''''''''12121213

12131010101310132*1*1210

1211120112001010101110011000

2*121

2

3

2

1

3231212

1

2

32

1

323123

21

H G F E D C B A T T T T H G F E D C B A 其中A ’B ’C ’D ’E ’F ’G ’H ’为变换后对应的齐次坐标。

一、 判断题(10x1=10分)

1、 构成图形的要素可分为两类:刻画形状的点、线、面、体的非几何要素(集合要素)与反映物体表面属性或材质

的明暗、色彩等的(非几何要素)几何要素。( 错误 )

X

2、 参数法描述的图形叫图形;点阵法描述的图形叫图像。( 正确 )

3、 EGA (增强图形适配器)/VGA (视频图形阵列)为增强图形显示效果的一种图形处理软件的名称。( 错误 )

4、 对山、水等不规则对象进行造型时,大多采用过程式模拟方法。( 正确 )

5、 若两个图形是拓扑等价的,则一个图形可通过做弹性运动与另一个图形相重合。( 正确 )

6、 0阶参数连续性和0阶几何连续性的定义是相同的。( 正确 )

7、 Bezier 曲线可做局部调整。( 错误 )

8、 字符的图形表示分为点阵和矢量两种形式。( 正确 )

9、 LCD 表示(液晶显示器)发光二极管显示器。( 错误 )

10、 使用齐次坐标可以将n 维空间的一个点向量唯一的映射到n+1维空间中。( 错误 ) 二、 填空题(15x2=30分)

1、目前常用的PC 图形显示子系统主要由3个部件组成:(1)帧缓冲存储器、(2)显示控制器、(3)ROM BIOS 。

2、 图形的输入设备有(4)键盘、鼠标、光笔(至少写三种);图形的显示设备有(5)CRT 显示器、LCD 、投影仪(至少写三种)。

3、常用坐标系一般可以分为:建模坐标系、用户坐标系、(6观察坐标系、(7)规格化设备坐标系、(8)设备坐标系。

4、在多边形的扫描转换过程中,主要是通过确定穿越多边形区域的扫描线的覆盖区间来填充,而区域填充则是从(9)给定的位置开始涂描直到(10)指定的边界条件为止。

5、一个交互式计算机图形系统应具有(11)计算 、(12)存储、(13)对话、(14)输入和输出等五个方面的功能。 三、 简答题(5x6=30分)

2、 请列举常用的直线段裁减算法(四种)。

答:答:直接求交算法、编码算法、中点再分算法、Cyrus-Beck 算法。

3、 考虑三个不同的光栅系统,分辨率依次为480640?,10241280?,20482560?。欲存储每个像素12位,

这些系统各需要多大的帧缓冲器(字节数)?

答:480640?需要的帧缓存为KB 4508/12480640=?? 10241280?需要的帧缓存为KB 19208/1210241280=?? 20482560?需要的帧缓存为KB 76808/1220482560=?? 4、 什么叫做走样?什么叫做反走样?反走样技术包括那些? 答:走样指的是用离散量表示连续量引起的失真。

为了提高图形的显示质量。需要减少或消除因走样带来的阶梯形或闪烁效果,用于减少或消除这种效果的方法称为反走样。

其方法是①前滤波,以较高的分辨率显示对象;②后滤波,即加权区域取样,在高于显示分辨率的较高分辨率下用点取样方法计算,然后对几个像素的属性进行平均得到较低分辨率下的像素属性。 5、 试说明一致缩放(s x =s y )和旋转形成可交换的操作对。

答:?????

?????-=??????????-???????????=1000cos sin 0sin cos 1000cos sin 0sin cos 10

00001θθθθ

θθθθ

y y x x y x s s s s s s T ????

?????

?-=?????????????????????-=10

00cos sin 0sin cos 10

000010

00cos sin 0sin cos 2θθθθθθθθ

y x y 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分) 六、

1

2

3

4

5

6

7

1

2

3

4

5

6

A7

A6

A5

A4

A3

A2

A1

Y

X

解:ET 表:

六、假设在观察坐标系下窗口区的左下角坐标为(wxl=10,wyb=10),右上角坐标为(wxr=50,wyt=50)。设备坐标系中视区的左下角坐标为(vxl=10,vyb=30),

右上角坐标为(vxr=50,vyt=90)。已知在窗口内有一点p(20,30),要将点p 映射 到视区内的点p`,请问p`点在设备坐标系中的坐标是多少?(本题10分)

解:○1将窗口左下角点(10,10)平移至观察坐标系的坐标原点,平移矢量为(-10,-10)。 ○

2针对坐标原点进行比例变换,使窗口的大小和视区相等。比例因子为: S x =(50-10)/(50-10)=1; S y =(90-30)/(50-10)=1.5。

3将窗口内的点映射到设备坐标系的视区中,再进行反平移,将视区的左下角点移回到设备坐标系中原来的位置(10,30),平移矢量为(10,30)。 p`点在设备坐标系中的坐标是(20,60)。

????????

??????

??????--=?=1301001

110

05.1000111010

01

00

012

1T T T ?

?

????=11500

5.100011]

60 [20115

05.10

01

1]. 30 [20115005.100011].y [x 1]y [x p`====??

?

?????????

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

名词解释 将图形描述转换成用像素矩阵表示的过程称为扫描转换。 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. 什么是图像的分辨率?

计算机图形学试题1

计算机图形学测试题 (一) 1.能在人的视觉系统中产生视觉印象的客观对象,包括自然景物、拍摄到的图片、用数学方法描述的图形等等,都是计算机(A)学的研究对象。 A.图形B.语言C.技术D.地理 2.刻画对象的轮廓、形状等,构成了图形的(B)要素。 A.化学B.几何C.技术D.语言 3.刻画对象的颜色、材质等,构成了图形的非(C)要素。 A.化学B.技术C.几何D.语言 4.点阵表示法枚举出图形中所有的点,简称为数字(D)。 A.图形B.图元C.像素D.图像 5.参数表示法包括了形状参数和属性参数等,简称为(A)。 A.图形B.图元C.像素D.图像 6.计算机辅助设计、科学计算可视化、计算机艺术、地理信息系统、计算机动画及广告影视创作、电脑游戏、多媒体系统、虚拟现实系统等,都是计算机(B)学的实际应用。 A.图像B.图形C.地理D.技术 7.科学计算可视化(Scientific Visualization)在直接分析大量的测量数据或统计数据有困难时可以实现用(C)表现抽象的数据。 A.技术B.几何C.图形D.像素 8.计算机艺术软件工具PhotoShop、CorelDraw、PaintBrush等具有创作轻松、调色方便等(D),但也有难以容入人的灵感等缺点。 A.历史B.现实C.缺点D.优点 9.3D MAX, MAYA等等都是很好的计算机(A)创作工具。 A.动画B.图形C.图像D.像素 10.电子游戏的实时性、逼真性,蕴含了大量先进的计算机(B)处理技术。 A.金融B.图形C.商业D.交易 11.在计算机控制下,对多种媒体信息进行生成、操作、表现、存储、通信、或集成的处理,总要包括文本、(C)、图像、语音、音频、视频、动画等。 A.文本B.语音C.图形D.动画 12.虚拟现实(Virtual Reality)或称虚拟环境(Virtual Environment)是用(D)技术来生成一个逼真的三维视觉、听觉、触觉或嗅觉等感觉世界。 A.控制B.机械C.物理D.计算机 13.媒体包括“连续媒体”和“离散媒体”,计算机总是要把连续的媒体(A)为离散的信息。 A.转换B.计算C.控制D.组合 14.虚拟现实可以让用户从自己的视点出发,利用自然的技能和某些设备对这一生成的(B)世界客体进行浏览和交互考察。 A.现实B.虚拟C.物理D.历史 (二) 15.电子束轰击荧光屏产生的亮点只能持续极短的时间,为了产生静态的不闪烁的图像,电子束必须周期性地反复扫描所要绘制的图形,这个过程称为(C)。 A.启动B.驱动C.刷新D.更新 16.阴极射线管(CRT)的电子枪发射电子束,经过聚焦系统、加速电极、偏转系统,轰击到荧光屏的不同部位,被其内表面的荧光物质吸收,发光产生可见的(D)。 A.电子B.物质C.光线D.图形 17.像素(Pixel:Picture Cell)是构成屏幕(A)的最小元素。 A.图像B.图框C.线D.点 18.分辨率(Resolution)是指在水平或竖直方向单位长度上能识别的最大(B)个数,单位通常为dpi(dots per inch)。 A.图像B.像素C.线D.圆 19.假定屏幕尺寸一定,常用整个屏幕所能容纳的像素个数描述屏幕的(C),如640*480,800*600,1024*768,1280*1024等等。 A.大小B.容量C.分辨率D.亮度 (三) 20.容器坐标系包括坐标原点、坐标度量单位和坐标轴的长度与(D)。

计算机图形学真实图形

#include #include /* Initialize material property, light source, lighting model, * and depth buffer. */ void init(void) { GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 }; GLfloat mat_shininess[] = { 50.0 }; GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 }; GLfloat lightPos[]={0.0f,0.0f,75.0f,1.0f}; GLfloat ambientLight[]={0.0f,0.0f,75.0f,1.0f}; GLfloat specular[]={0.0f,0.0f,75.0f,1.0f}; GLfloat specref[]={0.0f,0.0f,75.0f,1.0f}; GLfloat spotDir[]={0.0f,0.0f,75.0f,1.0f}; glClearColor (0.0, 0.0, 0.0, 0.0); glShadeModel (GL_SMOOTH);//设置阴影模型 glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);//镜面光分量强度glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);//镜面光反射指数glLightfv(GL_LIGHT0, GL_POSITION, light_position);//设置光源的位置 glLightModelfv(GL_LIGHT_MODEL_AMBIENT,ambientLight); glLightfv(GL_LIGHT1,GL_DIFFUSE,ambientLight); glLightfv(GL_LIGHT1,GL_SPECULAR,specular); glLightfv(GL_LIGHT1,GL_POSITION,lightPos); glLightf(GL_LIGHT1,GL_SPOT_CUTOFF,50.0f); glEnable(GL_LIGHT1); glEnable(GL_COLOR_MATERIAL); glColorMaterial(GL_FRONT,GL_AMBIENT_AND_DIFFUSE); glMaterialfv(GL_FRONT,GL_SPECULAR,specref); glMateriali(GL_FRONT,GL_SHININESS,128); glEnable(GL_LIGHTING);//启动光照 glEnable(GL_LIGHT0);//激活光源 glEnable(GL_LIGHT1);//激活光源 glEnable(GL_DEPTH_TEST); } /* 调用glut函数绘制一个球*/ void display(void) { glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

秋双学位计算机图形学

2006年秋双学位计算机图形学作业题目 教材计算机图形学(第二版) 第一次P105 3.17 利用中点算法并考虑对称性,推导在区间-10<=x<=10上,对下列曲线进行扫描转换的有效算法:y=(1/12)*x3 3.20 考虑对称性,建立中点算法对形式为y=ax2-b的任意抛物线进行扫描转换,参数a,b及x的范围从输入值获得。 第二次P106 3.34 利用circle函数,编写一个程序,显示具有合适标记的饼图。程序的输入包括:在某些区间上给定数据分布的数据组,饼图的名称和区间的名称。每部分的标记将是显示在饼图边界外靠近对应饼图部分的地方。 第三次10.7 P139 4.20 编写一个程序,使用指定的图案对给定的椭圆内部进行填充。 第四次10.14 P168 5.12 确定对于任何直线y=mx+b的反射变换矩阵的形式。 第四次10.22 比较若干条相对于裁剪窗口的不同方向的线段的Cohen-Sutherland和梁友栋-Barsky裁剪算法的算术运算次数。 第五次10.29 6.18 将梁友栋-Barsky算法改称多边形裁剪算法。 第六次11.4 8.13 设计一个程序,该程序允许用户使用一个笔画设备交互式地画图。 第七次11.11 10.9 建立一个将给定的球、椭球或圆柱体变成多边形网格的一个算法。 第八次11.18 10.20 给出d=5的均匀周期性B-样条曲线的混合函数。 第九次11.25 11.13 设计关于任选平面反射的例程。 第十次 12.8 编写一个将透视投影棱台变换到规则平行六面体的程序。 上机 1.实现Cohen-Sutherland多边形裁剪算法,要求显示多边形被每一条窗口边裁剪后的结果。 2.编写一个程序,允许用户通过一个基本形状菜单并使用一个拾取设备,将每一个选取的 形状拖曳到指定位置,并提供保存和载入的功能。 3.. 写一篇综述性的调研报告,要求不少于3000字,独立完成。内容可以是计算机图形学理论或算法的研究。如:曲线、曲面拟合算法;几何造型方法的研究。如:分形树、分形山、树木、花草、云、瀑布、粒子系统等等。或任何你感兴趣的领域。 4.2006年秋双学位计算机图形学作业参考答案 P105 3.17 利用中点算法并考虑对称性,推导在区间-10<=x<=10上,对下列曲线进行扫描转换的有效算法:y=(1/12)*x3 解答:第一象限和第三象限中心对称

《计算机图形学》练习试题及参考答案(七)

《计算机图形学》模拟试卷一 一、【单项选择题】(本大题共10小题,每小题2分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在答题卷相应题号处。 1、计算机图形学与计算机图像学(图像处理)的关系是()。 [A] 计算机图形学是基础,计算机图像学是其发展 [B] 不同的学科,研究对象和数学基础都不同,但它们之间也有可相互转换部分 [C] 同一学科在不同场合的不同称呼而已 [D] 完全不同的学科,两者毫不相干 2、多边形填充算法中,错误的描述是()。 [A] 扫描线算法对每个象素只访问一次,主要缺点是对各种表的维持和排序的耗费较大 [B] 边填充算法基本思想是对于每一条扫描线与多边形的交点,将其右方象素取补 [C] 边填充算法较适合于帧缓冲存储器的图形系统 [D] 边标志算法也不能解决象素被重复访问的缺点 3、在多边形的逐边裁剪法中,对于某条多边形的边(方向为从端点S到端点P)与某条裁剪线(窗口的某一边)的比较结果共有以下四种情况,分别需输出一些顶点。哪种情况下输出的顶点是错误的?() [A] S和P均在可见的一侧,则输出点P [B] S和P均在不可见的一侧,,则输出0个顶点 [C] S在可见一侧,,P在不可见一侧,则输出线段SP与裁剪线的交点和S [D] S在不可见的一侧,P在可见的一侧,则输出线段SP与裁剪线的交点和P 4、下列关于反走样的叙述中,错误的论述为()。 [A] 把像素当作平面区域来采样[B] 提高分辨率 [C] 增强图像的显示亮度[D] 采用锥形滤波器进行加权区域采样 5、下列关于平面几何投影的叙述中,错误的论述为()。 [A] 透视投影的投影中心到投影面的距离是有限的 [B] 在平行投影中不可能产生灭点 [C] 在透视投影中,一组平行线的投影仍保持平行 [D] 透视投影与平行投影相比,视觉效果更真实,但不一定能真实反映物体的精确尺寸和形状 6、下列关于Bezier曲线的论述中,错误的论述为()。 [A] 曲线及其控制多边形在起点和终点具有同样的几何性质 [B] 在起点和终点处的切线方向和控制多边形第一条边和最后一条边的方向相同 [C] n个控制点控制一条n次Bezier曲线 [D] 某直线与平面Bezier曲线的交点个数不多于该直线与控制多边形的交点个数 7、下面给出的四个选项中,()不是Bezier曲线具有的性质。 [A] 局部性[B] 几何不变性[C] 变差缩减性[D] 凸包性

图形学实验一 三维分形(附源代码)

实验报告 实验名称:三维分形算法 姓名:陈怡东 学号:09008406 程序使用说明: 程序打开后会呈现出3次分形后的四面体,因为考虑到观察效果的清晰所以就用了3次分形作为演示。 与用户的交互: 1键盘交互:分别按下键盘上的数字键1,2,3,4可以分别改变四面体的4个面的颜色。 按下字母c(不区别大小写)可以改变视图函数,这里循环切换3种视图 函数:glOrtho,glFrustum,gluPerspective,但是改变视图函数后要窗口形状变化后才能显现出来 按下字母键q(不区别大小写)可以退出程序 2鼠标交互:打开后在绘图的区域按下鼠标左键不放便可以拖动图形的视角,这里为了展现图形的3D效果因此固定了其中一点不放,这样就可以看到3D的效果。 鼠标右击则有弹出菜单显示,其中改变颜色则是同时改变4个面的颜色,本程序中运用了8组配色方案。 改变视图函数也是上述的3种函数,这里的效果立刻显现,但是还有很多问题达不到所要的效果,希望老师能帮忙解决一下。 设计思路: 分形算法:把四面体细分成更小的四面体,先找出其6个棱的中点并连接起来,这样就在4个顶点处各有一个小的四面体,原来四面体中剩下的部分应当去掉。仿效二维的生成方法,我们对保留的四个小四面体进行迭代细分。这样细分结束后通过绘制4个三角形来绘制每一个剩下的四面体。 交互的实现:键盘交互,即通过对按键的响应写上响应函数实现对视图和颜色的改变。 鼠标交互:通过对鼠标左右按键的 实现: 该部分只做了必要的介绍,具体实现见代码(附注释) 分形算法:void tetra(GLfloat *a,GLfloat *b,GLfloat *c,GLfloat *d)函数实现的是绘制四面体并且给四个面绘上不同的颜色。以区别开来,函数的实现细节见代码,有注释介绍。 void triangle3(GLfloat *a,GLfloat *b,GLfloat *c)函数用来绘制每个平面细分后的三角形。其中顶点设置为3维坐标glVertex3fv(a); void divide_tetra(GLfloat *a,GLfloat *b,GLfloat *c,GLfloat *d,int m)细分四面体的函数实现。前四个参数为传入点的坐标,最后参数m则是细分次数。先计算六个中点的坐标mid[1][j]=(a[j]+c[j])/2;3次循环则是对x,y,z三个坐标的一次计算,然后再递归调用绘制4个小四面体。 然后是显示回调函数void mydisplay3FX();这跟程序模板差不多不做过多介绍。 分形算法中必要重要的一点是隐藏面的消除。即书上2.10.3介绍的内容。对对象进行排

计算机图形学第二版课后习题答案

第一章绪论 概念:计算机图形学、图形、图像、点阵法、参数法、 图形的几何要素、非几何要素、数字图像处理; 计算机图形学和计算机视觉的概念及三者之间的关系; 计算机图形系统的功能、计算机图形系统的总体结构。 第二章图形设备 图形输入设备:有哪些。 图形显示设备:CRT的结构、原理和工作方式。 彩色CRT:结构、原理。 随机扫描和光栅扫描的图形显示器的结构和工作原理。 图形显示子系统:分辨率、像素与帧缓存、颜色查找表等基本概念,分辨率的计算 第三章交互式技术 什么是输入模式的问题,有哪几种输入模式。 第四章图形的表示与数据结构 自学,建议至少阅读一遍 第五章基本图形生成算法 概念:点阵字符和矢量字符; 直线和圆的扫描转换算法; 多边形的扫描转换:有效边表算法; 区域填充:4/8连通的边界/泛填充算法;

内外测试:奇偶规则,非零环绕数规则; 反走样:反走样和走样的概念,过取样和区域取样。 5.1.2 中点 Bresenham 算法(P109) 5.1.2 改进 Bresenham 算法(P112) 习题答案

习题5(P144) 5.3 试用中点Bresenham算法画直线段的原理推导斜率为负且大于1的直线段绘制过程(要求写清原理、误差函数、递推公式及最终画图过程)。(P111) 解: k<=-1 |△y|/|△x|>=1 y为最大位移方向 故有 构造判别式: 推导d各种情况的方法(设理想直线与y=yi+1的交点为Q): 所以有: y Q-kx Q-b=0 且y M=y Q d=f(x M-kx M-b-(y Q-kx Q-b)=k(x Q-x M) 所以,当k<0, d>0时,M点在Q点右侧(Q在M左),取左点 P l(x i-1,y i+1)。 d<0时,M点在Q点左侧(Q在M右),取右点 Pr(x i,y i+1)。 d=0时,M点与Q点重合(Q在M点),约定取右点 Pr(x i,y i+1) 。 所以有 递推公式的推导: d2=f(x i-1.5,y i+2) 当d>0时, d2=y i+2-k(x i-1.5)-b 增量为1+k =d1+1+k

计算机图形学考题B答案

1.在处理图形时常常涉及的坐标系有模型坐标系(局部坐标系),世界坐标系,观察坐标系,设备坐标系。 2.生成直线的四点要求是:生成的直线要直,直线的终止点要准,直线的粗细要均匀,速度要快。 3.扫描线的连贯性是多边形区域连贯性在一条扫描线上的反映;边的连贯性是多边形区域连贯性在相邻两扫描线上的反映。 4.具有256级灰度、分辨率为1024*1024个象素阵列的光栅扫描式显示器需要1024 KB的缓冲器。 5.计算机图形学是研究怎样用数字计算机生成、处理和显示图形的一门学科。 二、选择题(共10分,每题2分) 1.计算机显示设备一般使用的颜色模型是( A ) A)RGB B)HSV C)CMY D)不在A,B,C中出现 2.在计算机图形关于Modeling的物体的描述中,下列是正确的结论有(C) A 一根直线是物体 B 一个空间的点是物体 C 一个立方体是物体 D 三维欧氏空间点的集合是物体 3.以下关于图形变换的论述不正确的是(D) A. 平移变换不改变图形大小和形状,只改变图形位置; B. 拓扑关系不变的几何变换不改变图形的连接关系和平行关系; C.旋转变换后各图形部分间的线性关系和角度关系不变,变换后直线的长度不变 D.错切变换虽然可引起图形角度的改变,但不会发生图形畸变; 4.计算机图形学与计算机图象学的关系是( B )。 A)计算机图形学是基础,计算机图象学是其发展 B)不同的学科,研究对象和数学基础都不同,但它们之间也有可转换部分C)同一学科在不同场合的不同称呼而已 D)完全不同的学科,两者毫不相干5.使用下列二维图形变换矩阵: 将产生变换的结果 为(D) A. 图形放大2倍; B. 图形放大2倍,同时沿X、Y坐标轴方向各移动1个绘图单位; C.沿X坐标轴方向各移动2个绘图单位; D.沿X坐标轴方向放大2倍,同时沿X、Y坐标轴方向各平移1个绘图单位。 T =

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

计算机图形学模拟试卷 计算机图形学课程试卷(卷) 注意: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、下列有关平面几何投影的叙述语句中,正确的论述为

计算机图形学 实验一:生成彩色立方体(含源代码)

实验一 实验目的:生成彩色立方体 实验代码://ColorCube1.java import java.applet.Applet; //可以插入html import java.awt.BorderLayout; //窗口采用BorderLayout方式布局import com.sun.j3d.utils.applet.MainFrame; //application import com.sun.j3d.utils.geometry.ColorCube;//调用生成ColorCube的Utility import com.sun.j3d.utils.geometry.Primitive; import com.sun.j3d.utils.universe.*; //观测位置的设置 import javax.media.j3d.*; //核心类 import javax.vecmath.*; //矢量计算 import com.sun.j3d.utils.behaviors.mouse.*; public class ColorCube1 extends Applet { public BranchGroup createSceneGraph() { BranchGroup objRoot=new BranchGroup(); //BranchGroup的一个对象objRoot(放置背景、灯光)BoundingSphere bounds=new BoundingSphere(new Point3d(0.0,0.0,0.0),100.0);//有效范围 TransformGroup objTrans=new TransformGroup(); objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); objRoot.addChild(objTrans); MouseRotate behavior = new MouseRotate(); behavior.setTransformGroup(objTrans); objRoot.addChild(behavior); behavior.setSchedulingBounds(bounds); MouseZoom behavior2 = new MouseZoom(); behavior2.setTransformGroup(objTrans); objRoot.addChild(behavior2); behavior2.setSchedulingBounds(bounds); MouseTranslate behavior3 = new MouseTranslate(); behavior3.setTransformGroup(objTrans); objRoot.addChild(behavior3); behavior3.setSchedulingBounds(bounds);

计算机图形学基础教程习题课1(第二版)(孙家广-胡事民编著)

1.列举计算机图形学的主要研究内容。 计算机中图形的表示方法、图形的计算、图形的处理和图形的显示。 图形硬件、图形标准、图形交互技术、光栅图形生成算法、曲线曲面造型、实体造型、真实感图形计算与显示算法,以及科学计算可视化、计算机动画、自然景物仿真、虚拟现实等。 2.常用的图形输出设备是什么? 显示器(CRT、LCD、等离子)、打印机、绘图仪等。 2.常用的图形输入设备是什么? 键盘、鼠标、跟踪球、空间球、数据手套、光笔、触摸屏、扫描仪等。 3.列出3种图形软件工具。 AutoCAD、SolidWorks、UG、ProEngineer、CorelDraw、Photoshop、PaintShop、Visio、3DMAX、MAYA、Alias、Softimage等。 错误:CAD 4.写出|k|>1的直线Bresenham画线算法。 d d d d 设直线方程为:y=kx+b,即x=(y-b)/k,有x i+1=x i+(y i+1-y i)/k=x i+1/k,其中k=dy/dx。因为直线的起始点在象素中心,所以误差项d的初值d0=0。y下标每增加1,d的值相应递增1/k,即d=d+1/k。一旦d≥1,就把它减去1,这样保证d在0、1之间。 ●当d≥0.5时,最接近于当前象素的右上方象素(xi+1,y i+1),x方向加1,d减 去1; ●而当d<0.5时,更接近于上方象素(x i,yi+1)。

为方便计算,令e=d-0.5,e的初值为-0.5,增量为1/k。 ●当e≥0时,取当前象素(x i,y i)的右上方象素(xi+1,y i+1),e减小1; ●而当e<0时,更接近于上方象素(xi,yi+1)。 voidBresenhamline (int x0,int y0,intx1, inty1,int color) { int x,y,dx,dy; float k,e; dx= x1-x0, dy = y1-y0,k=dy/dx; e=-0.5, x=x0, y=y0; for (i=0; i≤dy; i++) {drawpixel(x, y,color); y=y+1,e=e+1/k; if (e≥0) { x++, e=e-1;} } } 4.写出|k|>1的直线中点画线算法。 构造判别式:d=F(M)=F(xp+0.5,y p+1)=a(x p+0.5)+b(yp+1)+c ●当d<0,M在Q点左侧,取右上方P2为下一个象素; ●当d>0,M在Q点右侧,取上方P1为下一个象素; ●当d=0,选P1或P2均可,约定取P1为下一个象素;

计算机图形学考题

下面哪个函数是OpenGl 的工具函数( ) A.glBegin B.glEnd C. glClear D. gluLookAt Breseham 算法直线算法中,当误差项5.0

计算机图形学实验_透视茶壶源代码

#include #include #include using namespace std; float fTranslate; float fRotate; float fScale=1.0f;//set inital scale value to 1.0f bool bPersp=false; bool bAnim=false; bool bWire=false; int wHeight=0; int wWidth=0; //todo //hint:some additional parameters may needed here when you operate the teapot void Draw_Leg() { glScalef(1,1,3); glutSolidCube(1.0f); //glutWireCone(1.0f); } //定义操作茶壶的操作参数 int tx=1; int ty=0; int tz=0; int tangle=90; //定义设置scale的参数 float sx=0.3f; float sy=0.3f; float sz=0.3f; void Draw_Scene() { glPushMatrix(); glTranslatef(0,0,5); glRotatef(tangle,tx,ty,tz); // glutSolidTeapot(1); glutSolidSphere(1.0f,10,10);

glPopMatrix(); glPushMatrix(); glTranslatef(0,0,3.5); glScalef(5,4,1); glutSolidCube(1.0); glPopMatrix(); //leg1 glPushMatrix(); glTranslatef(1.5,1,1.5); Draw_Leg(); glPopMatrix(); //leg2 glPushMatrix(); glTranslatef(-1.5,1,1.5); Draw_Leg(); glPopMatrix(); //leg3 glPushMatrix(); glTranslatef(1.5,-1,1.5); Draw_Leg(); glPopMatrix(); //leg4 glPushMatrix(); glTranslatef(-1.5,-1,1.5); Draw_Leg(); glPopMatrix(); } void updateView(int width,int height) { glViewport(0,0,width,height);//reset the current viewport glMatrixMode(GL_PROJECTION);//select the projection matrix glLoadIdentity();//reset the projection matrix float whRatio=(GLfloat)width/(GLfloat)height; if(bPersp) { //todo when 'p'operation ,hint:use function glupersPective } else glOrtho(-3,3,-3,3,-100,100); glMatrixMode(GL_MODELVIEW);//select the modelview matrix

2006-2007计算机图形学考题B答案

姓名:___________学号:___________班级:_______ 机械学院2006-2007计算机图形学试题(B )开卷 一、填空题(共20分,每空2分) 1.在处理图形时常常涉及的坐标系有模型坐标系(局部坐标系),世界坐标系,观察坐标系,设备坐标系。 2.生成直线的四点要求是:生成的直线要直,直线的终止点要准,直线的粗细要均匀, 速度要快。 3.扫描线的连贯性是多边形区域连贯性在一条扫描线上的反映;边的连贯性是多边形区域连贯性在相邻两扫描线上的反映。 4.具有256级灰度、分辨率为1024*1024个象素阵列的光栅扫描式显示器需要1024 KB 的缓冲器。 5.计算机图形学是研究怎样用数字计算机生成、处理和显示图形的一门学科。 二、选择题(共10分,每题2分) 1.计算机显示设备一般使用的颜色模型是 ( A ) A )RG B B )HSV C )CMY D )不在A,B,C 中出现 2.在计算机图形关于Modeling 的物体的描述中,下列是正确的结论有( C ) A 一根直线是物体 B 一个空间的点是物体 C 一个立方体是物体 D 三维欧氏空间点的集合是物体

3.以下关于图形变换的论述不正确的是(D) A. 平移变换不改变图形大小和形状,只改变图形位置; B. 拓扑关系不变的几何变换不改变图形的连接关系和平行关系; C.旋转变换后各图形部分间的线性关系和角度关系不变,变换后直线的长度不变 D.错切变换虽然可引起图形角度的改变,但不会发生图形畸变; 4.计算机图形学与计算机图象学的关系是( B )。 A)计算机图形学是基础,计算机图象学是其发展 B)不同的学科,研究对象和数学基础都不同,但它们之间也有可转换部分C)同一学科在不同场合的不同称呼而已 D)完全不同的学科,两者毫不相干5.使用下列二维图形变换矩阵: 将产生变换的结果 为(D) A. 图形放大2倍; B. 图形放大2倍,同时沿X、Y坐标轴方向各移动1个绘图单位; C.沿X坐标轴方向各移动2个绘图单位; 2倍,同时沿X、Y坐标轴方向各平移1个绘图单位。 三、判断题(共10分,每题1分) 请在括号内填写“T”或“F”。 1.光栅扫描式图形显示器可看作是点阵单元发生器,可直接从单元阵列中的一个可编地址的象素画一条直线到另一个可编地址的象素。( F)2.由三个顶点可以决定一段二次B样条曲线,若三顶点共线时则所得到的曲线褪化为一条直线段。(T)3.四连通的区域同时也是一个八连通的区域,所以,四连通区域填充算法也可以用于填充八连通区域。( F)4.插值得到的函数严格经过所给定的数据点。( T)5.Bezier曲线具有对称性质。(T)6.在光栅扫描图形显示器中,所有图形都按矢量直接描绘显示。(F)7.齐次坐标提供了坐标系变换的有效方法,但仍然无法表示无穷远的点;(F)8.一次Bezier曲线其实就是连接起点到终点的折线段。(F)9.参数曲线的表示有代数形式和几何形式两种。(T)10.光栅图形显示器中,显示一幅图像使用的时间与图像复杂程度无关。 (T) T =

计算机图形学试卷

三(8分) 1、在真实感绘制技术中,简单光照模型的反射光由哪几部分组成? 2、对于用多边形表示的物体,在光照计算时需要进行明暗处理,为什么? 3、采用Gouraud明暗处理模型计算如图所示点P的颜色值。

四(10分)如图所示,采用Cohen-Sutherland算法对线段进行裁剪时, 1、线段端点P点和Q点的编码各是多少 2、此时是否需要与窗口的边界进行求交运算,为什么(利用编码解释)? 3、如需要,可以与窗口的哪些边界求交,为什么(利用编码解释)? 五(15分)采用Bresenham算法转换直线段,起点x0(2,1)、终点x1(12,5)。 1、给出判别式d的表达式(初始条件及递推关系式): 2 x y d 2 1 -2 3 4 5 6 7 8 六(12分)如图所示三角形ABC,将其绕点(1,1)缩小1倍,采用矩阵的形式计算缩小后三角形各点的规范化齐次坐标,并用OpenGL函数编程实现。

七 计算(18分) 已知三次B 样条曲线方程为 [ ] [0,1] t 0141 030 303631331611)(3212 3 ∈?? ??? ? ? ????????????? ??? ??----? ?=+++i i i i i P P P P t t t t c , 控制顶点{}{})0,6(),1,5(),0,4(),1,3(),0,2(),1,1(),0,0(...10-==n P P P P 可生成四段B 样条曲线3210,,,c c c c 。 1)B 样条曲线和Bezier 曲线相比,最明显的特点是什么? 2)求)0(),1(),5.0(),0(),1(' '01101 c c c c c 3)如果调整控制点2P ,将对哪些曲线段产生影响 图形学作业 05计算机2班 2 郑中旭 Subject : 已知三次B 样条曲线方程为 [ ] [0,1] t 0141 030 3036313 31611)(3212 3 ∈?? ??? ? ? ????????????? ??? ??----? ?=+++i i i i i P P P P t t t t c , 控制顶点{}{})0,6(),1,5(),0,4(),1,3(),0,2(),1,1(),0,0(...10-==n P P P P 可生成四段B 样条曲线3210,,,c c c c 。 4)B 样条曲线和Bezier 曲线相比,最明显的特点是什么? 5)求)0(),1(),0(),1(),5.0(),0(),1("" 0''01101 1 c c c c c c c 。

计算机图形学实验--完整版-带结果--vc++实现

计算机图形学实验报告信息学院计算机专业20081060183 周建明 综括: 利用计算机编程语言绘制图形,主要实现以下内容: (1)、中点算法生成任意斜率直线,并设置线型线宽。 (2)、中点算法生成圆 (3)、中点算法生成椭圆 (4)、扫描算法实现任意多边形填充 (5)、Cohen_Sutherland裁剪 (6)、自由曲线与曲面的绘制 (7)、二维图形变换 (8)、三视图变换 实验一、直线的生成 一、实验内容 根据提供的程序框架,修改部分代码,完成画一条直线的功能(中点画线法或者Bresenham画线法任选一),只要求实现在第一象限内的直线。 二、算法原理介绍 双击直线生成.dsw打开给定的程序,或者先启动VC++,文件(file)→打开工作空间(open workspace)。打开直线生成view.cpp,按注释改写下列函数: 1.void CMyView::OnDdaline() (此为DDA生成直线) 2.void CMyView::OnBresenhamline()(此为Bresenham画直线) 3.void CMYView::OnMidPointLine()(此为中点画线法) 三、程序源代码 1.DDA生成直线画法程序: float x,y,dx,dy,k; dx=(float)(xb-xa); dy=(float)(yb-ya); k=dy/dx; x=xa; y=ya;

if(abs(k)<1) { for (x=xa;x<=xb;x++) { pdc->SetPixel(x, int(y+0.5),COLOR); y=y+k; } } if(abs(k)>=1) { for(y=ya;y<=yb;y++) { pdc->SetPixel(int(x+0.5),y,COLOR); x=x+1/k; } } //DDA画直线结束 } 2.Bresenham画直线源程序: float b,d,xi,yi; int i; float k; k=(yb-ya)/(xb-xa); b=(ya*xb-yb*xa)/(xb-xa); if(k>0&&k<=1) for(i=0;i=0) { xi=xa+1; yi=ya; xa++; ya=ya+0.5; } if(d<0) { xi=xa+1; yi=ya+1; xa++; ya=ya+1.5; } pdc->SetPixel(xi,yi,COLOR); }

相关文档
最新文档