计算机图形学精彩试题集16098.docx
《计算机图形学精彩试题集16098.docx》由会员分享,可在线阅读,更多相关《计算机图形学精彩试题集16098.docx(80页珍藏版)》请在冰豆网上搜索。
计算机图形学精彩试题集16098
第一章绪论
一.填空题
1.1982年,国际标准化组织ISO给计算机图形学下的定义是:
研究用计算机进行______和图
形之间相互转换的方法和技术。
2.1982年,国际标准化组织ISO给计算机图形学下的定义是:
研究用计算机进行数据和____
___之间相互转换的方法和技术。
3.1982年,国际标准化组织ISO给计算机图形学下的定义是:
研究用计算机进行__________
___之间相互转换的方法和技术。
4.1982年,国际标准化组织ISO给计算机图形学下的定义是:
研究用计算机进行数据和图形
之间相互__________的方法和技术。
5.计算机图形学涉及和研究的主要问题是利用计算机进行____________的输入、表达、存
储、显示、检索、变换、图形编辑等。
6.计算机图形学涉及和研究的主要问题是利用计算机进行图形信息的_________、表达、存
储、显示、检索、变换、图形编辑等。
7.计算机图形学涉及和研究的主要问题是利用计算机进行图形信息的输入、__________、
存储、显示、检索、变换、图形编辑等。
8.计算机图形学涉及和研究的主要问题是利用计算机进行图形信息的输入、表达、_______
__、显示、检索、变换、图形编辑等。
9.1950年,MIT的旋风一号计算机通过控制_________,生成和现实了一些简单的图形。
10.1962年,MIT林肯实验室Ivan.E.Sutherland在发表的论文中指出,开发的通信系统是
一个功能完善的__________图形系统,从而确立了计算机图形学的科学分支地位。
解答:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
二.选择题
解答:
三.判断题
解答:
四.问答题
解答:
五.计算分析题
解答:
第二章计算机图形学的发展
一.填空题
1.以下是DDA画线算法程序,请补充。
#defineROUND(a)((int)(a+0.5))
voidline_DDA(intxs,intys,intxe,intye)
{
intdx,dy,steps,k;
floatxIncrement,yIncrement,x=xs,y=ys;
________________;
dy=ye-ys;
if(abs(dx)>abs(dy))steps=abs(dx);
elsesteps=abs(dy);
xIncrement=dx/(float)steps;
yIncrement=dy/(float)steps;
setpixel(ROUND(x),ROUND(y));
for(k=0;k{
x+=xIncrement;
y+=yIncrement;
setpixel(ROUND(x),ROUND(y));
}
}
2.以下是DDA画线算法程序,请补充。
#defineROUND(a)((int)(a+0.5))
voidline_DDA(intxs,intys,intxe,intye)
{
intdx,dy,steps,k;
floatxIncrement,yIncrement,x=xs,y=ys;
dx=xe-xs;
_______________;
if(abs(dx)>abs(dy))steps=abs(dx);
elsesteps=abs(dy);
xIncrement=dx/(float)steps;
yIncrement=dy/(float)steps;
setpixel(ROUND(x),ROUND(y));
for(k=0;k{
x+=xIncrement;
y+=yIncrement;
setpixel(ROUND(x),ROUND(y));
}
}
3.以下是DDA画线算法程序,请补充。
#defineROUND(a)((int)(a+0.5))
voidline_DDA(intxs,intys,intxe,intye)
{
intdx,dy,steps,k;
floatxIncrement,yIncrement,x=xs,y=ys;
dx=xe-xs;
dy=ye-ys;
if(_______________)steps=abs(dx);
elsesteps=abs(dy);
xIncrement=dx/(float)steps;
yIncrement=dy/(float)steps;
setpixel(ROUND(x),ROUND(y));
for(k=0;k{
x+=xIncrement;
y+=yIncrement;
setpixel(ROUND(x),ROUND(y));
}
}
4.以下是DDA画线算法程序,请补充。
#defineROUND(a)((int)(a+0.5))
voidline_DDA(intxs,intys,intxe,intye)
{
intdx,dy,steps,k;
floatxIncrement,yIncrement,x=xs,y=ys;
dx=xe-xs;
dy=ye-ys;
if(abs(dx)>abs(dy))_______________;
elsesteps=abs(dy);
xIncrement=dx/(float)steps;
yIncrement=dy/(float)steps;
setpixel(ROUND(x),ROUND(y));
for(k=0;k{
x+=xIncrement;
y+=yIncrement;
setpixel(ROUND(x),ROUND(y));
}
}
5.以下是DDA画线算法程序,请补充。
#defineROUND(a)((int)(a+0.5))
voidline_DDA(intxs,intys,intxe,intye)
{
intdx,dy,steps,k;
floatxIncrement,yIncrement,x=xs,y=ys;
dx=xe-xs;
dy=ye-ys;
if(abs(dx)>abs(dy))steps=abs(dx);
else______________;
xIncrement=dx/(float)steps;
yIncrement=dy/(float)steps;
setpixel(ROUND(x),ROUND(y));
for(k=0;k{
x+=xIncrement;
y+=yIncrement;
setpixel(ROUND(x),ROUND(y));
}
}
6.以下是DDA画线算法程序,请补充。
#defineROUND(a)((int)(a+0.5))
voidline_DDA(intxs,intys,intxe,intye)
{
intdx,dy,steps,k;
floatxIncrement,yIncrement,x=xs,y=ys;
dx=xe-xs;
dy=ye-ys;
if(abs(dx)>abs(dy))steps=abs(dx);
elsesteps=abs(dy);
______________________________;
yIncrement=dy/(float)steps;
setpixel(ROUND(x),ROUND(y));
for(k=0;k{
x+=xIncrement;
y+=yIncrement;
setpixel(ROUND(x),ROUND(y));
}
}
7.以下是DDA画线算法程序,请补充。
#defineROUND(a)((int)(a+0.5))
voidline_DDA(intxs,intys,intxe,intye)
{
intdx,dy,steps,k;
floatxIncrement,yIncrement,x=xs,y=ys;
dx=xe-xs;
dy=ye-ys;
if(abs(dx)>abs(dy))steps=abs(dx);
elsesteps=abs(dy);
xIncrement=dx/(float)steps;
__________________________________;
setpixel(ROUND(x),ROUND(y));
for(k=0;k{
x+=xIncrement;
y+=yIncrement;
setpixel(ROUND(x),ROUND(y));
}
}
8.以下是DDA画线算法程序,请补充。
#defineROUND(a)((int)(a+0.5))
voidline_DDA(intxs,intys,intxe,intye)
{
intdx,dy,steps,k;
floatxIncrement,yIncrement,x=xs,y=ys;
dx=xe-xs;
dy=ye-ys;
if(abs(dx)>abs(dy))steps=abs(dx);
elsesteps=abs(dy);
xIncrement=dx/(float)steps;
yIncrement=dy/(float)steps;
setpixel(ROUND(x),ROUND(y));
for(__________________________)
{
x+=xIncrement;
y+=yIncrement;
setpixel(ROUND(x),ROUND(y));
}
}
9.以下是DDA画线算法程序,请补充。
#defineROUND(a)((int)(a+0.5))
voidline_DDA(intxs,intys,intxe,intye)
{
intdx,dy,steps,k;
floatxIncrement,yIncrement,x=xs,y=ys;
dx=xe-xs;
dy=ye-ys;
if(abs(dx)>abs(dy))steps=abs(dx);
elsesteps=abs(dy);
xIncrement=dx/(float)steps;
yIncrement=dy/(float)steps;
setpixel(ROUND(x),ROUND(y));
for(k=0;k{
_______________________;
y+=yIncrement;
setpixel(ROUND(x),ROUND(y));
}
}
10.以下是DDA画线算法程序,请补充。
#defineROUND(a)((int)(a+0.5))
voidline_DDA(intxs,intys,intxe,intye)
{
intdx,dy,steps,k;
floatxIncrement,yIncrement,x=xs,y=ys;
dx=xe-xs;
dy=ye-ys;
if(abs(dx)>abs(dy))steps=abs(dx);
elsesteps=abs(dy);
xIncrement=dx/(float)steps;
yIncrement=dy/(float)steps;
setpixel(ROUND(x),ROUND(y));
for(k=0;k{
x+=xIncrement;
___________________________;
setpixel(ROUND(x),ROUND(y));
}
}
解答:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
二.选择题
1.存在以下内容:
①二维图形的数据结构,以及直线、圆、椭圆等基本图形元素的生成;
②三维形体的数据结构,以及图形在计算机内的表示方法;
③产生图形的基本算法;
④图形裁剪算法;
其中,属于计算机图形学涉及和研究的主要问题是________。
A)仅①②B)仅③④C)仅①②③D)①②③④
2.存在以下内容:
①直线、圆、椭圆等基本图形元素的生成算法;
②产生图形的基本算法;
③图形裁剪算法;
④图形在计算机内的表示方法;
其中,属于计算机图形学涉及和研究的主要问题是________。
A)仅①②B)仅③④C)仅①②③D)①②③④
3.存在以下内容:
①直线、圆、椭圆等基本图形元素的生成算法;
②图形裁剪算法;
③图形在计算机内的表示方法;
④二维图形、三维形体的数据结构;
其中,属于计算机图形学涉及和研究的主要问题是________。
A)仅①②B)仅③④C)仅①②③D)①②③④
4.存在以下内容:
①直线、圆、椭圆等基本图形元素的生成算法;
②图形裁剪算法;
③图形在计算机内的表示方法;
④窗口和视区;
其中,属于计算机图形学涉及和研究的主要问题是________。
A)仅①②B)仅③④C)仅①②③D)①②③④
5.存在以下内容:
①直线、圆、椭圆等基本图形元素的生成算法;
②图形裁剪算法;
③窗口和视区;
④二维图形、三维形体的数据结构;
其中,属于计算机图形学涉及和研究的主要问题是________。
A)仅①②B)仅③④C)仅①②③D)①②③④
6.以下描述错误的是________。
A)二维图形的数据结构不属于计算机图形学的研究内容。
B)直线、圆、椭圆等基本图形的生成属于计算机图形学的研究内容。
C)图形裁剪算法属于计算机图形学的研究内容。
D)图形的二维、三维几何变换属于计算机图形学的研究内容。
7..以下描述错误的是________。
A)图形在计算机内的表示方法不属于计算机图形学的研究内容。
B)直线、圆、椭圆等基本图形的生成属于计算机图形学的研究内容。
C)图形裁剪算法属于计算机图形学的研究内容。
D)图形的二维、三维几何变换属于计算机图形学的研究内容。
8.以下描述错误的是________。
A)窗口和视区不属于计算机图形学的研究内容。
B)直线、圆、椭圆等基本图形的生成属于计算机图形学的研究内容。
C)图形裁剪算法属于计算机图形学的研究内容。
D)图形的二维、三维几何变换属于计算机图形学的研究内容。
9.以下描述正确的是________。
A)二维图形的数据结构属于计算机图形学的研究内容。
B)直线、圆、椭圆等基本图形的生成不属于计算机图形学的研究内容。
C)图形裁剪不属于计算机图形学的研究内容。
D)图形的二维、三维几何变换不属于计算机图形学的研究内容。
10.以下描述正确的是________。
A)图形在计算机内的表示方法属于计算机图形学的研究内容。
B)直线、圆、椭圆等基本图形的生成不属于计算机图形学的研究内容。
C)图形裁剪不属于计算机图形学的研究内容。
D)图形的二维、三维几何变换不属于计算机图形学的研究内容。
解答:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
三.判断题
解答:
四.问答题
1.请简述扫描线多边形填充算法的基本步骤。
2.请简述扫描线多边形填充改进算法的基本步骤,即左右标记算法的步骤。
解答:
1.
2.
五.计算分析题
解答:
第三章画线算法基础
一.填空题
1.___________算法的基础是判断点在区域内的方法。
2.区域填充算法的基础是判断______________的方法。
3.区域填充分为两类:
一类是______________,一类为种子填充。
4.区域填充分为两类:
一类是多边形填充,一类为____________。
5.区域填充算法解决的主要问题是确定待填充的__________,即检查光栅的每一个像素是
否位于多边形区域内。
6.区域填充算法解决的主要问题是确定待填充的像素,即检查光栅的每一个像素是否位于_
________区域内。
7.在多边形内的包含性检验方法包括:
检验_________之和、射线法检验交点数等。
8.___________指先将区域的一点赋予指定的颜色,然后将该颜色扩展到整个区域的过程。
9.种子填充算法要求区域是_________的。
10.扫描线种子填充算法适用于边界表示的___________区域。
解答:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
二.选择题
1.以下描述错误的是________。
A)用计算机绘制三维图形时,需要将三维图形投影到二维平面上。
B)绘制二维图形时,需要用到大量的直线段。
C)绘制曲线段时,不能使用直线段逼近。
D)生成直线段算法的效率直接影响计算机图形绘制的质量和效率。
2.以下描述错误的是________。
A)用计算机绘制三维图形时,需要将三维图形投影到二维平面上。
B)绘制二维图形时,需要用到大量的直线段。
C)生成直线段算法的效率不影响计算机图形绘制的质量。
D)绘制曲线段时,可以使用直线段逼近。
3.以下描述错误的是________。
A)用计算机绘制三维图形时,需要将三维图形投影到二维平面上。
B)绘制二维图形时,需要用到大量的直线段。
C)生成直线段算法的效率不影响计算机图形绘制的效率。
D)绘制曲线段时,可以使用直线段逼近。
4.以下描述错误的是________。
A)生成直线段算法的效率直接影响计算机图形绘制的效率。
B)绘制二维图形时,需要用到大量的直线段。
C)用计算机绘制三维图形时,不需要将三维图形投影到二维平面上。
D)绘制曲线段时,可以使用直线段逼近。
5.以下描述错误的是________。
A)生成直线段算法的效率直接影响计算机图形绘制的质量。
B)绘制二维图形时,需要用到大量的直线段。
C)用计算机绘制三维图形时,不需要将三维图形投影到二维平面上。
D)绘制曲线段时,可以使用直线段逼近。
6.以下描述正确的是________。
A)用计算机绘制三维图形时,不需要将三维图形投影到二维平面上。
B)绘制二维图形时,需要用到大量的直线段。
C)生成直线段算法的效率不影响计算机图形绘制的质量。
D)生成直线段算法的效率不影响计算机图形绘制的效率。
7.以下描述正确的是________。
A)用计算机绘制三维图形时,不需要将三维图形投影到二维平面上。
B)绘制曲线段时,可以使用直线段逼近。
C)生成直线段算法的效率不影响计算机图形绘制的质量。
D)生成直线段算法的效率不影响计算机图形绘制的效率。
8.以下描述正确的是________。
A)用计算机绘制三维图形时,不需要将三维图形投影到二维平面上。
B)画线算法就是确定二维像素矩阵内位于或最靠近所画直线的像素。
C)生成直线段算法的效率不影响计算机图形绘制的质量。
D)生成直线段算法的效率不影响计算机图形绘制的效率。
9.以下描述正确的是________。
A)用计算机绘制三维图形时,不需要将三维图形投影到二维平面上。
B)绘制曲线段时,可以使用直线段逼近。
C)画线算法是确定二维像素矩阵内位于所画直线上的像素。
D)生成直线段算法的效率不影响计算机图形绘制的质量和效率。
10.以下描述正确的是________。
A)用计算机绘制三维图形时,不需要将三维图形投影到二维平面上。
B)绘制二维图形时,需要用到大量的直线段。
C)画线算法是确定二维像素矩阵内位于所画直线上的像素。
D)生成直线段算法的效率不影响计算机图形绘制的质量和效率。
解答:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
三.判断题
1.使用射线法判断点是否在多边形区域之内,如果射线通过边界交点,则按一个交点计算
。
()
2.使用射线法判断点是否在多边形区域之内,如果射线通过边界交点,则按两个交点计算
。
()
3.使用射线法判断点是否在多边形区域之内,如果射线与边界交点的个数为奇数,则说明
给定点在多边形区域的外部。
()
4.使用射线法判断点是否在多边形区域之内,如果射线与边界交点的个数为偶数,则说明
给定点在多边形区域的内部。
()
5.在判断点是否在多边形内时,一般通过在多边形外找一点,如果构成的线段与多边形的
交点数目为偶数,则可认为在多边形内部;如果为奇数,则在多边形外部,而且不需考虑任
何特殊情况。
()
6.对于曲线裁剪,最优的算法是首先求解直线-曲线联立方程,确定裁剪交点,然后进行判
断。
()
7.DDA画线算法的过程是沿X轴每次递增一个像素,沿Y轴每次增量为0或1。
因此,该算法比
直接使用直线方程的画线算法效率高。
()
8.裁剪只能在用户坐标系的窗口中进行。
()
9.裁剪只能在屏幕坐标系的视区中进行。
()
10.裁剪既可以在用户坐标系的窗口进行,又可以在屏幕坐标系的视区中进行。
()
解答:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
四.问答题
解答:
五.计算分析题
1.
2.
3.
4.
5.
解答:
1.
2.
3.
4.
5.
第四章画圆算法基础
一.填空题
1.在曲线裁剪过程中,首先对于被裁剪的曲线所围成的区域,需要找出包围该区域的_____
_____。
2.在曲线裁剪过程中,首先对于被裁剪的曲线所围成的区域,需要找出包围该区域的最小
矩形。
如果该矩形完全落在____________内,则全部保留。
3.在曲线裁剪过程中,首先对于被裁剪的曲线所围成的区域,需要找出包围该区域的最小
矩形。
如果该矩形完全落在裁剪窗口内,则曲线__________。
4.在曲线裁剪过程中,首先对于被裁剪的曲线所围成的区域,需要找出包围该区域的最小
矩形。
如果该矩形完全落在_______________外,则曲线全部舍弃。
5.在曲线裁剪过程中,首先对于被裁剪的曲线所围成的区域,需要找出包围该区域的最小
矩形。
如果该矩形完全落在裁剪窗口外,则曲线_______