湖北理工计算机图形学考试Word文档格式.docx
《湖北理工计算机图形学考试Word文档格式.docx》由会员分享,可在线阅读,更多相关《湖北理工计算机图形学考试Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
1024*768
QVAG多频彩显
1028*1024
6.
计算机图形输入输出设备
计算机图形输出设备:
显示器、绘图仪、打印机
7.图形核心系统(GKS)GKS的功能一、提供了各种物理的图形输入、输出设备和应用软件之间的接口,二、提供了与各种高级语言的接口。
8.GKS图形输入设备1定位设备(鼠标器、操纵杆、跟踪球、数字化仪)2笔画设备(数字化仪、鼠标器、光笔)3拣取设备(数字化仪、鼠标器、光笔)4选择设备(按钮,功能键,鼠标器)5数值输入设备(数字键盘、按钮)6字符串输入设备(ASCII键盘)。
9.通用图形软件的分类:
图形程序包,基本图形资源软件,二维、三维交互图形软件,几何造型软件,动画技术软件。
10.TurboC中图形函数均在头文件“”中定义,所以,凡是在程序中要调用这些图形函数,都必须在程序文件的开头写上文件包含命令:
#include<>
11.画实心长方形
#include"
"
#include“”
main()
{intgdriver=DETECT,gmode;
/*自启动搜寻显示器类型和显示模式*/
initgraph(&
gdriver,&
gmode,"
c:
\\tc"
);
/*初始化*/
bar3d(10,20,50,80,0,0);
/*画实心长方形*/
getch();
/*等待按一键*/
closegraph();
/*关闭图形系统,返回文本模式*/
return(0);
}
12.画一个圆把背景色设置为淡灰色
Voidmain()
"
Setbkcolor(LIGHTGRAY);
Cleardevice();
Circle(120,100,50);
Restorecrtmode();
13.将背景颜色设置为黄色,画笔设置为红色,画一圆。
#include"
voidmain()
{intgdriver,gmode;
gdriver=VGA;
gmode=EGAHI;
initgraph(&
setbkcolor(YELLOW);
/*设置背景色为黄色*/
setcolor(RED);
/*设置画笔为红色*/
circle(120,100,50);
/*画一圆*/
14.
线
例:
1111111111111111
16位全置1,因此画一条16个像素的点实线(就是实线)。
1010101010101010
则隔位置1,因此画一条16个像素的点虚线(就是点线)。
15.指定两点间画一直线voidfarline(intx1,inty1,intx2,inty2);
用当前颜色从点(x1,y1)到点(x2,y2)画一条直线,当前位置(CP)不变。
16.从当前位置到(x,y)点画一条直线voidfarlineto(intx,inty);
用当前颜色从当前位置(CP)到(x,y)点画一条直线,并把(CP)位置定位在(x,y)点。
17.从当前坐标以相对增量方式画直线voidfarlinerel(intdeltax,intdeltay)
从当前位置到相对CP位置在X方向增大deltax,在Y方向增大deltay画一直线。
18.数值微分法(DDA法)基本思想:
选定x2-x1和y2-y1中较大者作为步进方向(假设x2-x1较大)取该方向上的Δx为一个像素单位长,即x每次递增一个像素,然后利用前面公式计算相应的y值,把每次计算出的(xi+l,yi+1)经取整后顺序输出到显示器,则得光栅化后的直线。
算法程序DDA-line(xl,y1,x2,y2)
intxl,y1,x2,y2;
{
floatincrex,increy,x,y,length;
inti;
if(abs(x2-xl)>
abs(y2-y1))
length=abs(x2-x1);
else
length=abs(y2-y1);
increx=(x2-x1)/length;
increy=(y2-y1)/length;
x=x1;
y=y1;
for(i=l;
i<
=length;
i++)
{putpixel(x,y,l);
x=x+increx;
y=y+increy;
}}
19.Bresenham法算法如下:
Bresenham-line(x1,y1,x2,y2,value)
Intx1,y1,x2,y2,value;
{intsign();
intx,y,s1,s2,increx,increy,tamp,interchange;
inte,i;
s1=sign(x2-x1);
s2=sign(y2-y1);
increx=abs(x2-x1);
increy=abs(y2-y1);
if(increy>
increx)
{temp=increx;
increx=increy;
increy=temp;
interchange=1;
}
Elseinterchange=0;
e=2*increy-increx;
for(i=1;
i<
=increx;
i++)
{putpixel(x,y,value);
if(e>
=0)
{if(interchange=1)x=x+s1;
elsey=y+s2;
e=e-2*increx;
}
if(interchange=1)y=y+s2;
Elsex=x+s1;
e=e+2*increy}}
20.扫描线种子填充算法算法可分为以下五步
1 初始化。
将算法设置的堆栈置为空。
将给定的种子(x,y)压入堆栈。
2 出栈。
如果堆栈为空,算法结束。
否则从包含种子像素的堆栈中取出栈顶元素(x,y)作为种子像素。
3 区间填充。
沿当前扫描线对种子像素的左右像素进行填充(像素值为new_color),直至遇到边界像素为止,从而填满包含种子像素的区间。
4 定范围。
以xl和xr分别表示步骤(3)区间内最左和最右的两个像素。
5 进栈。
在xl≤x≤xr中,检查与当前扫描线相邻的上下两条扫描线是否全为边界像素(boundary_color)或者前面已经填充过的像素(new_color),是则转到步骤
(2),否则在xl≤x≤xr中把每一个区间的最右像素作为种子像素压入堆栈,再转到步骤
(2)继续执行。
21.
各顶点坐标A(3,0),B(4,2),C(6,0)使其绕原点转90度,再向X方向平移2,Y方向平移–1。
解:
因θ=90O则变换矩阵:
如果先进行平移变换,再进行旋转变换,则矩阵为:
22.设有一三角形ABC,其三个顶点坐标为
A(2,4),B(2,2),C(5,2),求对于直
线–2x+3y+3=0的对称变换后
α=arcty(-A/B)=arcty(2/3)33041’
变换后的如下图所示。
23.
编码裁剪法:
把包含窗口的平面区域沿窗口的四条边线分成九
个区域.每个区域用一个四位代码来表示,代码中
每一位分别是0或1,是按照窗口边线来确定的,
下面给出编码规则,其中最右边的位是第一位,
依次第二、三、四位。
第一位置l:
该端点位于窗口左侧
第二位置l:
该端点位于窗口右侧
第三位置1:
该端点位于窗口下面
第四位置l:
该端点位于窗口上面
否则,相应位置置0。
24.已知多边形各顶点坐标为(2,2)(2,4)(8,6)(12,2)(8,1)(6,2)及(2,2),在用多边形区域填充时,请写出ET及全部AET内容。
如图所示:
则该多边形的ET表为:
6
5
4
3
2
1
该多边形的AET指针的内容为:
(每条扫描线均有3行指针链,第1行表示将ET表加入AET中,第2行表示从AET表中删去yi=ymax,第3行表示xi=xi+1/m后,学生只要写出第2行即可)
1
2
3
4
5
6
25.已知四边形各顶点坐标为(0,0),(20,0),(20,15)和(0,15),对此图形分别进行下列比例变换:
(1)使长度方向缩小一半,高度方向增长一倍;
(2)使整个图形放大一倍。
如图所示,实线部分为原图,虚线部分为变换后得到的图形:
Y
30
15
(1)
(2)
(1)原先坐标变换矩阵变换后坐标
*
=
(2)原先坐标变换矩阵变换后坐标
归一化
26.已知三角形各顶点坐标为(10,10),(10,30),(30,15),试对其进行下列变换,写出变换矩阵,画出变换后的图形。
(1)沿X向平移20,沿Y向平移15,再绕原点旋转90度
(2)绕原点旋转,再沿X向平移20,沿Y轴平移15
(1)由二维图形变换相关知识,可得变换矩阵为
100cos90sin900010
010-sin90cos900=-100
20151001-15201
根据得出的新坐标可画出图形(图形略)
新坐标的值为[-25,30][-45,30][-30,50]
(2)变换矩阵为:
10101010
T=10301-100
3015120151
坐标数据点变换矩阵
10251
T=-10251
5451
由得出的新坐标画图(图形略)
35.三维比例变换
1 局部比例变换
2
全比例变换
当s>1时,则立体各方向等比例缩小;
当0<s<1对,则立体各方向等比例放大。
3 三维平移交换
例设变换矩阵中l=3,m=3,n=3,试对单位立体进行平移变换。
36.三维旋转变换
1
绕Z轴旋转θ角变换结果为:
2 绕X轴旋转θ角变换结果为:
3 绕Y轴旋转θ角变换结果为:
37.三维投影变换分类
38.立体透视投影变换
根据透视投影中灭点多少又可分为一点透视、二点透视和三点透视。
39.三维图形裁剪
在二维图形裁剪过程中,图形视见区域是一个矩形窗口,常用的三维窗口有两种形状:
一种是平行投影立方体三维窗口;
另一种是透视投影的棱台。
40.深度缓冲器法
基本思想是:
对于显示屏上的每一个像素点(x,y),测试一系列平面,记录下位于此像素投射线上最靠近观察点的平面的深度。
除了深度外,一般还需记录下用以显示此对象的亮度值。
一般的深度缓冲器算法采用两个数组,一个用来记录每一个像素点的深度值,一个用来记录此像素点所对应的亮度值。
深度缓冲器算法的过程:
1)对于屏幕上每一个像素点(x,y),置深度缓冲器Depth[x][y]为一较大值,置亮度缓冲器为背景值;
2)对于景中的每个多边形,找出多边形投影到屏上时位于其边界内的全部像素(x,y)。
对于这些像素计算出此多边形在(x,y)处的深度z;
如果z<Depth[x][y],此多边形相对于其它多边形在(x,y)处更靠近观察者,所以置Depth[x][y]=z,置亮度数组为该多边形的亮度值。
如果z>Depth[x][y],说明该多边形在此像素点处被其它多边形隐藏,所以不采取任何行动。
当对所有像素进行扫描后,深度缓冲器和亮度缓冲器分别包含了所有可见点及可见的亮度值。
41.消隐的意义是什么
消隐的主要意义是为了得到一个确定的、立体感强的投影图。
42.Phong光照模型
Ir=IaKar+Ip[Kdr(L·
N)+Ks(R·
V)n]
Ig=IaKag+Ip[Kdg(L·
Ib=IaKab+Ip[Kdb(L·
43.Z缓冲器方法
由于阴影是光线照射不到面观察者却可见到的区域,换句话说,阴影是相对于光源不可见而观察点却可见到的区域。
所以在画面中生成阴影的过程基本上相当于二次消隐,一次是对光源消隐,另一次是对视点消隐,Z缓冲器算法就是基于这个原理。
该法的优点:
能处理任意复杂的景物,可以较方便地在光滑曲面上生成阴影,且计算量小,程序简单;
缺点:
阴影缓冲器的存储耗费较大。
44.RGB彩色模型和CMY彩色模型的差异
RGB彩色模型也称为加色模型,色彩来源于红、绿、蓝3种基本色。
它主要用来描述发光设备,如显示器、电视机、扫描仪等装置所表现的颜色
CMY彩色模型也称为减色模型,色彩来源于青、洋红、黄3种基色主要适用彩色印刷领域。
45.传统动画和计算机动画有什么不同
传统动画采用手工方法制作,精度差且效率低;
而计算机动画立体感强,可以改变视角、视距、视野及景深,具有明暗光线变化和阴影,使物体产生不同灰度和颜色渐变以及逼真的光照,可以产生纹理质感,且这些特点与效果是手工动画难以实现或不可能实现的。
46.计算机动画研究的内容是什么
从目前国外对计算机动画的研究来看,计算机动画研究的具体内容可分为以下方面:
(1)关键帧动画;
(2)基于机械学的动画和工业过程动画仿真;
(3)运动和路径的控制;
(4)动画语言与语义;
(5)基于智能的动画,机械人与动画;
(6)动画系统用户界面;
(7)科学可视化计算机动画表现;
(8)特技效果,合成演员;
(9)语言、音响合成,录制技术。
47.简要说说你对OpenGL及OGRE的认识
(1)GL是美国SGI公司为图形工作站开发的一种功能强大的三维图形机制,经过长期发展,在跨平台移植的过程中,由GL扩充形成了OpenGL,目前,它已经成为高性能图形和交互式视景处理的工业标准。
有了OpenGL的帮助,编程者可以轻松地进行三维动画的程序设计。
OpenGL提供的相关库有:
1)OpenGL核心库(GL)
2)OpenGL实用库(GLU)
3)OpenGL辅助库(GLAUX)
4)OpenGL工具库(GLUT)
5)OpenGL对窗口系统的扩展(WGL,等等)
对于各个库,函数功能可分为两大类:
渲染功能,提供图形绘制所需的各种功能函数;
窗口管理功能,管理窗口系统的所有相关功能,如键盘鼠标的响应,各种窗口事件等等。
(2)OGRE(Object-orientedGraphicsRenderingEngine,面向对象的图形渲染引擎)是国际上知名的开源图形渲染引擎。
OGRE是用C++开发的面向对象且使用灵活的3D引擎,它的目的是让编程者能更容易开发基于3D的动画或游戏等应用程序。
引擎中的类库对更底层的系统库(如OpenGL或Direct3D)的全部使用细节进行了简化封装和抽象,同时提供基于现实世界的对象接口以及其它非常有用的工具类。
因此,利用OGRE引擎来进行动画编程可以提高开发的效率,并且一般情况下要比基于OpenGL的动画编程还简单些。
48.简述基于编程实现的动画与基于软件制作的动画的异同点。
编程实现方式:
灵活,可以随心所欲进行动画创作,但要求较高,需要大量编程;
软件制作方式:
方便,可以快速生成动画,但受限于所采用软件的功能强弱,仅需少量脚本;
事实上,很难说哪一种方式更好,主要看需求,若软件制作方式能够完成的,且采购正版软件的费用在用户的承受范围之内,那不妨采用软件制作方式,而当软件制作方式不能实现所需要的功能和效果时,那就必须进行手工编程了。
通常大些的动画作品往往采用两者结合的方式来开发。
49.简述虚拟现实技术的特征
答:
(1)多感知性;
(2)浸没感;
(3)交互性;
(4)构想性。
50.例举几个典型的虚拟现实技术的应用场景
(1)虚拟远程教育;
(2)虚拟室内装潢;
(3)网络3D游戏。