文档库 最新最全的文档下载
当前位置:文档库 › 计算机图形学试题及答案

计算机图形学试题及答案

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

15、平面上给定三个顶点Qi (i=0,1,2),试构造一条插值这三个顶点的二次Bezier 曲线。要求简述基本原理并画出示意图。

解:由曲线端点性质,知可以取Bezier 曲线的两端点P 0=Q 0,P 2=Q 2,下面构造P 1 点: 因为P(t)= P 0(1-t)2+ 2P 1(1-t)t+ P 2t 2,令l1=|Q 0Q 1|,

l2=|Q 1Q 2|,,则可以取t1=l1/(l1+l2),有:

P (t1)=Q 1

从而可以求得:222

1212012

112

()2l l Q l Q l Q P l l +--=

这样就可以以P 0P 1P 2这特征多边形画出二次Bezier 曲线。

16、给定顶点P 0P 1P 2P 3P 4P 5P 6构成的控制多边形,绘出三次B 样条曲线的形状示意图。 要求:简要说明作图过程,保留作图辅助线,作出(或文字说明)曲线上各特征点的切线矢量。

P1 P0 P2

Q 0

Q 1 Q 2

画出以P 0P 1P 2 P 3决定的地0段3次样条曲线:

M 1为P 0P 2的中点,A 点位于P 1M 1的1/3处,A 点的切矢平行于P 0P 2,且等于P 0P 2的1/2,A 点的二阶导数矢量为中线矢量P 1M 1的两倍;M 2为P 2P 3的中点,B 点位于P 2M 2的1/3处,A 点的切矢平行于P 1P 3,且等于P 1P 3的1/2,B 点的二阶导数矢量为中线矢量P 2M 2的两倍;

正确标出A 、B 两点、 指出A 、B 点的切矢、 指出A 、B 点的二阶导数矢量

以同样的方法画出其它样条曲线。

16、如图,取正方形四个顶点P 0,P 1,P 2,P 3作为特征多边形顶点,采用二次B 样条曲线绘出光滑封闭曲线的形状示意图。采用三次B 样条曲线绘出光滑封闭曲线的形状示意图。

要求:简要说明作图过程,保留作图辅助线,作出(或文字说明)曲线上各特征点的切线矢量。

1)作图简述:先画由P 0P 1P 2三点所决定的一段曲线。取P 0P 1中点,该点的切矢方向及大小都与P 0P 1向量相同。另外,取P 1P 2中点,该点的切矢方向及大小都与P 1P 2向量相同,在两个中点之间画一曲线,端点切矢由两上中点的切矢所决定。

同法绘出另外三段曲线。

2)作图简述:画出以P 0P 1P 2P 3所决定的首段曲线。M 为P 0P 2中点,也即 P 1P 3中点。A 点位于P 1M 的1/3处,B 点位于P 2M 的1/3处。A 点的切矢平行于P 2P 0且等于其1/2,B 点的切矢平行于P 1P 3且等于其1/2。A 点的二阶导数矢量为P 1P 3,B 点的二阶导数矢量为P 2P 0。从而可以画出曲线段AB 。 同法可以绘出另外三段曲线。

三次B 样条曲线

P 0 P

1

17、给定四个顶点Q 0(10,10),Q 1(10,110),Q 2(110,110),Q 3(110,10),绘出插值该四个顶点的三次B 样条曲线的形状示意图。

要求:简要说明作图过程,保留作图辅助线,作出(或文字说明)曲线上各特征点的切线矢量。

作图简述:1)首先考虑顶点P1,可由下式计算: Q1=2P 1/3+M/3,M 点坐标为(60,60),

可求得P1为(-15,135), 同理可求得其他点为:P 2(135,135),

P 3(135,-15),P 0(-15,-15)。

2)绘图。先画由P 0P 1P 2P 3所决定的第一段曲线。在Q1点处,切矢方向平行于P 0P 2等于其一半,二阶导数矢量等于P 1P 3。在Q2点处,切矢方向平

行于P 1P 3等于其一半,二阶导数矢量等于P 2P 0。同理,可绘出另外三段曲线段。

18.读下面的程序并找出程序中的错误: #include main() {

int a=150,b;

int driver=DETECT,mode; initgraph(driver,mode,"e://bc//bgi"); for(b=10;b<=140;b+=10) ellipse(320,240,0,360,a-b,b); }

两处错误:

(1)initgraph(&driver,&mode,"e://bc//bgi");

initgraph 函数的前两个参数是整型指针,调用时应加上地址运算符"&"。 (2)程序结束应调用closegraph()函数关闭图形方式。 19.读下面的程序并说出程序执行结果: #include #include void main() {

int i,c,x=5,y=6;

int driver=DETECT,mode;

P P 0

printf("input color number./n");

scanf("%d",&c);

initgraph(&driver,&mode,"e://bc//bgi");

cleardevice();

setcolor(9);

for(i=c;i

{

setcolor(i);

rectangle(x,y,x+140,y+140);

x=x+70;

y=y+50;

setfillstyle(SOLID_FILL,i);

floodfill(x,y,i);

}

getch();

closegraph();

}

程序将在屏幕上看到一列用不同色彩填充的正方形从左上角向右下角延伸。

20.读下面的程序并说出程序执行结果:

#include

#include

#include

void main()

{

int i,t,x=300,y=50;

int driver=DETECT,mode;

initgraph(&driver,&mode,"e://bc//bgi");

setbkcolor(9);

setcolor(4);

printf("input delay time(1-10)");

scanf("%d",&t);

for(i=1;i<=10;i++)

{

x=x-15; y=y+15;

settextstyle(1,0,i);

cleardevice();

outtextxy(x,y,"HELLO!");

delay(100*t);

}

getch();

closegraph();

}

这是在图形模式下输出的文本的程序。程序的运行结果是:文字"HELLO"从屏幕中央由小到大显示出来;函数delay用于延迟执行时间,控制文字的变化速度。

21. 请用图说明,一个四连通区域的边界是八连通的,而一个八连通区域的边界式四连通的。

22.观察变换一般可以分为几个步骤。

23.中点分割裁剪法的算法思想是什么?

中点分割裁剪法的思想是:当一条线段既不能直接接受也不能直接舍弃,欲求其与区域的交点时,预先假设此交点落在线段的中点,如果这估计是错误的,则将直线分为两段,并对该两段再分别加以测试。用这种二分法搜索方式一直进行下去,直到原来线段的一段被直接接受,而另一段被直接舍弃。

24.中点分割法可分为哪两个过程平行进行?

要裁剪的线段为P1P2,求其可见部分AB,算法可分两个过程平行进行,即:

a)从P1点出发,找出离P1点最近的可见点A;

b)从P2点出发,找出离P2点最近的可见点B;此两点的连线AB,即为原线段P1P2的可

见部分。

25.试对下图中的多边形进行裁剪,用图表示裁剪过程。

依次用窗口的左、上、右、下四条边界进行裁剪:

26.试用双边裁减法对下图中的凹多边形用矩形窗口进行裁减。

裁减过程如下图所示:

27.任意两个矩阵要进行乘法运算需要满足什么条件?

任意两个矩阵,只有在前一个矩阵的列数等于后一个矩阵的行数时才能相乘。

28.转置矩阵具有哪几点基本性质?

转置矩阵具体有如下的几点基本性质:

29.如果不采用齐次坐标表示法,二维图形平移变换该如何表示,采用齐次坐标又该如何表示?

不采用齐次坐标,平移变换表示为:

采用齐次坐标,平移变换表示为:

可以与其它二维变换一样用3×3的矩阵统一表示。30.试写出绕原点顺时针旋转θ角的变换矩阵。

31.在三维图形的变换矩阵用来描述什么变换?

该子阵用以产生比例、旋转、错切、对称等变换。

32.平移变换矩阵中,l, m, n 分别表示什么?

l, m, n分别为图形沿X轴、Y轴、Z轴方向的平移分量。

33.三维空间中,图形是相对于直线还是平面作对称变换?

三维空间中,图形是相对于平面作对称变换。

34.如何作空间中的点相对于任意平面的对称变换?

当空间中的点相对于任意平面作对称变换时,应先将此平面旋转成与一坐标面相重合,然后运用基本对称变换,最后再将平面反变换会原来的位置。

35.矩阵表示沿什么方向的错切?

该矩阵表示沿X方向有错切。

36.三维空间中,相对于任意点A的比例变换是哪几个基本变换的连乘?

和二维图形一样,是平移变换,比例变换和平移逆变换的连乘:

37.三维空间中,绕Z轴正向的旋转可以被看作是哪个平面内的二维旋转?

可以看作是XOY平面内的二维旋转。

38.下列三维空间中绕Y轴正向的旋转β角的变换矩阵是正确的吗?

因为绕Y轴正向的旋转β角相当于在ZOX平面内作二维旋转,所以正确的变换矩阵应该是:

39.PHIGS和GKS把各种输入数据概括成哪几种逻辑输入设备分类。LOCATOR 指定坐标位置(x,y)的设备(定位设备)

STROKE 指定一组坐标位置的设备(笔画设备)

STRING 指定文字输入的设备(字符串设备)

VALUATOR 指定标量值的设备(定值设备)

CHOICE 选择菜单项的设备(选择设备)

PICK 选择图形组成部分的设备(拾取设备)

40.写出Coons曲面片四条边界的曲线方程。

曲线方程为:

41. 写出Coons曲面片的角点矩阵。角点矩阵为:

42. 设一Coons曲面片的系数矩阵为:

试计算曲面片中参数为u = 0.5, w = 0和u = 0.5, w = 1的点的坐标值。参数为u = 0.5,w = 0时点的坐标值为:(0,5,4);

参数为u = 0.5,w = 1时点的坐标值为:(9,5,0)。

43.辐射度方法可以解决什么问题?

辐射度方法是用以解决物体间的漫反射问题的。

44. 什么是辐射度?

辐射度,是指在单位时间内从曲面上单位面积漫反射出去的光能量。

45. 视点的改变会影响辐射度方法的计算结果吗?

辐射度方法计算结果与视点无关。

46. 形状因子表示了什么?

形状因子表示两个面片

之间相互辐射的能量交换,取决于两个面片的

方向和相对距离,它的值等于面片向面片

直接辐射的能量与面片

向空间各个方向均匀辐射的能量之比,

47.出从RGB值转换到YIQ值的变换

从RGB值转换到YIQ值的变换为:

48.写出从YIQ值转换到RGB值的变换将YIQ空间转换成RGB空间:

49.写出从RGB值转换到CMY值的转换从RGB到CMY的转换

50.写出从CMY值转换到RGB值的转换

把CMY颜色表示转换成RGB

51.请简要说明光线跟踪算法的跟踪终止条件。

Whitted 模型是一递归的计算模型,可用以下公式求出:I = I c + k s I s + k t I t。

即光亮度I由三部分组成:一是由光源直接照射引起的反射光亮度Ic;一是沿V的镜面反射方向r来的环境光I s投射在光滑表面上产生的镜面反射光;最后是沿V的规则透射方向t来的环境光I t通过透射在透明体表面上产生的规则透射光。

由于I s和I t分别为从P1V的镜面反射方向r和规则透射方向t向P1点辐射的光亮度,所以可用求解I同样的方法来求解I s和I t。具体地,

●先从V出发通过象素e发射一根光线求得它与场景的最近交点P1。

●计算出P1点的局部照明光亮度I c。

●为了计算整体环境向P1点发射的镜面反射光和规则透射光,从P1点出发向r方向和t方

向发射两条光线求得它们与景物的交点P r和P t。

●计算P r和P t点向P1点辐射的光亮度I s和I t。

●代入Whitted 模型算出总的光亮度I。

●继续从P r和P t点出发向相应r方向和t方向发射光线并重复上述过程,这就是光线跟踪。)//最好提及一下Whitted 模型与光线跟踪,再介绍跟踪终止条件。

相关文档