计算机图形学教学方针教案课程课后习题集参考总结地答案解析.pdf
《计算机图形学教学方针教案课程课后习题集参考总结地答案解析.pdf》由会员分享,可在线阅读,更多相关《计算机图形学教学方针教案课程课后习题集参考总结地答案解析.pdf(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章1、试述计算机图形学研究的基本内容?答:见课本P5-6页 的 1.1.4节。2、计算机图形学、图形处理与模式识别本质区别是什么?请各举一例说明。答:计算机图形学是研究根据给定的描述,用计算机生成相应的图形、图像,且所生成的图形、图像可以显示屏幕上、硬拷贝输出或作为数据集存在计算机中的学科。计算机图形学研究的是从数据描述到图形生成的过程。例如计算机动画制作。图形处理是利用计算机对原来存在物体的映像进行分析处理,然后再现图像。例如工业中的射线探伤。模式识别是指计算机对图形信息进行识别和分析描述,是从图形(图像)到描述的表达过程。例如邮件分捡设备扫描信件上手写的邮政编码,并将编码用图像复原成数
2、字。3、计算机图形学与CAD、CAM技术关系如何?答:见课本P4-5页 的 1.1.3节。4、举 3 个例子说明计算机图形学的应用。答:事务管理中的交互绘图应用图形学最多的领域之一是绘制事务管理中的各种图形。通过从简明的形式呈现出数据的模型和趋势以增加对复杂现象的理解,并促使决策的制定。地理信息系统地理信息系统是建立在地理图形基础上的信息管理系统。利用计算机图形生成技术可以绘制地理的、地质的以及其它自然现象的高精度勘探、测量图形。计算机动画用图形学的方法产生动画片,其形象逼真、生动,轻而易举地解决了人工绘图时难以解决的问题,大大提高了工作效率。5、计算机绘图有哪些特点?答:见课本P 8页的1.
3、3.1节。6、计算机生成图形的方法有哪些?答:计算机生成图形的方法有两种:矢量法和描点法。矢量法:在显示屏上先给定一系列坐标点,然后控制电子束在屏幕上按一定的顺序扫描,逐 个“点亮”临近两点间的短矢量,从而得到一条近似的曲线。尽管显示器产生的只是一些短直线的线段,但当直线段很短时,连成的曲线看起来还是光滑的。描点法:把显示屏幕分成有限个可发亮的离散点,每个离散点叫做一个像素,屏幕上由像素点组成的阵列称为光栅,曲线的绘制过程就是将该曲线在光栅上经过的那些像素点串接起来,使它们发亮,所显示的每一曲线都是由一定大小的像素点组成的。当像素点具有多种颜色或多种灰度等级时,就可以显示彩色图形或具有不同灰度
4、的图形。7、当前计算机图形学研究的课题有哪些?答:见课本P10-11页 的 1.4节。8、简述三维图形生成和输出的流水线?答:见课本P13页 1.5.6.节。9、向量图形和点阵图形之间的区别有哪些?答:通过矢量法产生的图形称为矢量图形或者向量图形,用描点法产生的图形称为点阵图形。向量图形区别点阵图形的特点在于描述图形几何形状的数学模型及依据此模型生成几何图形的计算机命令。向量图形由各个基本图形构成,这就要求各个基本图形有各自独立的信息.如果用点阵图形来表示一个向量图形,构成向量图形的某个基本图形(如直线段、圆弧等)的所有点应有一个信息。因此,在描述一个基本图形时,同时要描述其相应的信息。向量图
5、形最基本的优点是它本身是由精确的数据给出,所以可以充分利用各种输出图形设备的分辨率尽可能精确地输出图形。也正因为如此,向量图形的尺寸可以任意变化而不损失图形显示的质量。但是向量图形仅适合于描绘简单图形,而点阵图形可以描绘绚烂多彩的复杂图形。10、什么是虚拟现实技术和可视化技术?答:虚拟现实技术:利用计算机生成一种模拟环境,通过多种传感器和设备使用户“投入”到该环境中,实现用户和该环境直接进行交互的技术。例如模拟飞机驾驶舱。可视化技术:通过对空间数据场构造中间几何因素,或用图形绘制技术在屏幕上产生二维图像。例如分子模型构造。第二章1、计算机图形系统有什么特点?有哪些主要功能?答:课 本 2.1.
6、1的图2.1展示了计算机图形系统的组成。计算机图形系统是为了支持应用程序,便于实现图形的输入输出的硬件和软件组合体。没有图形系统支持,就难以实现应用软件的开发。主要功能见课本2.1.2节。2、计算机图形系统有哪几种?各有什么特点?答:一种分类方法:交互式图形系统允许操作者以某种方式(对话方式或命令方式)来控制和操作图形生成过程,使得图形可以边生成、边显示、边修改,直至符合要求为止。而被动式绘图系统,图形在生成过程中,操作者无法对图形进行实时操作和控制,不具备交互功能,只提供各种图形命令或图形程序库,通过编程获得所需图形。另一种分类方法:见课本2.1.3节,分为脱机绘图系统、联机绘图系统和交互式
7、绘图系统。3、阴极射线管由哪些部分组成?它们的功能分别是什么?答:C R T 由四部分组成:电子枪、聚焦系统、偏转系统和荧光屏,这四部分都在真空管内。电子枪由灯丝、阴极和控制栅极组成。灯丝加热阴极,阴极表面向外发射自由电子,控制栅控制自由电子是否向荧光屏发出,若允许电子通过,形成的电子流在到达屏幕的途中,被聚焦系统(电子透镜)聚焦成很窄的电子束,由偏转系统产生电子束的偏转电场(或磁场),使电子束左右、上下偏转,从而控制荧光屏上光点上下、左右运动,使得在指定时刻在屏幕指定位置上产生亮点。4、光栅扫描显示器由哪些部分组成?它们的功能分别是什么?答:见课本P21页图2.9所展示的组成框图,其后有各部
8、分的介绍及功能。5、对于分辨率为1024*1024的光栅系统,若每一像素用8 位 和 12位二进制来表示存储信息,各需多大光栅存储容量以及显存?每一屏幕最多能显示多少颜色?若 R,G,B 灰度都占8位,其显示颜色的总数是多少?解:1)每一像素用8 位二进制来表示存储信息,所需容量为1024*1024*1 =22(Byte)=1 MB彩色素:2*=256(项)2)若每一像素用12位二进制表示存储信息,所需容量为:1024*1024*1.5=1.5*220(Byte)=1.5MB(由于显示卡的显存是按2 的指数次倍增长的,因此所需显存为2M)彩色素:2n=4096(项)3)颜色总数:2S*2S*2
9、8=22 4=16777216(种)6、对 于 19英寸显示器,若 X 和 Y 两方向的分辨率相等,即 1024*1024,那么每个像素点的直径是多少?19*25 4 19解:-尸=0.33(mm)或-尸=0.013(英寸)1024 V2 1024 V27、对于分辨率为1024X768的光栅系统,若调色板设置为真彩色32位,此时需要显示一个三维图形,各需要多大光栅存储容量以及显存?答:调色板为真彩色32位,即意味着像素值的位长为32所需容量为1024*768*32/8*3=9MB 因此所需要的显存为16M8、GKS有哪三种坐标系?它们有什么不同?试写出它们之间对应关系?答:GKS有 3 种不同
10、的坐标系。第一种是供应用程序使用的实际世界坐标系统(WorldCoordinate System,简称 WC);第二种是G K S内部使用的规范设备坐标系(NormalizedDevice Coordinate,简称NDC),它的取值范围为 0,1,这是一种既与设备无关也与应用无关的坐标系;第三种是各工作站物理设备使用的设备坐标系(Device Coordinate System,简 称 DC)。G K S只支持二维对象的图形处理,因此上述3 个坐标系都是二维坐标系。详见课本图3.28的描述。9、GKS中输入设备有哪6 种逻辑功能?请各举出对应的物理设备。答:见课本2.4.5.节。10、当前主
11、流的图形软件有哪些?答:见课本2.6.3节。第三章1,编写画一正方形程序,并在其中用不同的颜色画15个正方形,每一个都比前一个小。#include“graphics.h#includeconio.hvoid main()int i,color=0,ls=0;intj=700;int gdriver=VGA;int gmode=VGAHI;initgraph(&gdriver,&gmode,);setbkcolor(15);for(i=0;iVGA、EGAo3-2批改说明;,注意查看3 部分内容 setlinestyle(i%4),0,k);k 对线宽的设置。getch();closegraph
12、();)2、用不同的线形绘制题1 中的图形#include“graphics.#include“conio.hvoid main()(int i,color=l,ls=0;intj=700;int gdriver=VGA;gmode=VGAHI;initgraph(&gdriver,&gmode,);setbkcolor(15);for(i=0;i=225;i=i+15,j=j-30)(setcolor(color);/setlinestyle(ls%4,0,1);或者setlinestyle(4,ls,3);rectangle(i,i,jj);setfillstyle(SOLID_FILL,
13、color);/noodfin(getmaxx()/2,getmaxy()/2,color);此句会出现最后只用一种颜色填充的情况color+;ls+;getch();closegraph();)3、画一五颜六色的图(此例为画一个五颜六色的圆)#include“graphics.#include“conio.hvoid main()(int driver=DETECT,mode=0;int i,start,end;initgraph(&driver,&mode,);start=O;end=20;for(i=0;i0;i-,j-)setfillstyle(EMPTY_FILL,O);piesli
14、ce(387+j,290,start,end,37);pieslice(525+j,290,start,end,37);start+=40;end+=40;delay(5);处于运动状态的自行车车轮的轴线的绘制putimage(i-1,200,w,COPY_PUT);line(2,327,562,327);delay(lO);自行车行驶动画的实现for(i=0;iabs(y2-y 1)length=abs(x2-xl);elselength=abs(y2-y 1);increx=(x2-x l)/length;increy=(y2-y l)/length;x=xl;y=yi;for(i=1 ;
15、i 1)if(f=0)(xl=xl-dx;yi=yi;putpixel(xl,yl,l);f=f-2*dx*(x 1 -x0)+dx*dx;)else(xl=xl;yl=yl+dy;putpixel(xl,yl,l);f=f+2*dy*(y 1 -yO)+dy*dy;方法2:逆 4 象限#include graphics.h#include stdlib.h#include conio.hvoid ZDBJ_ARC(float xOJloat yO,float xl,float yl,float x2,float y2);void main()int gdriver=CGA,mode=CGAC
16、O;initgraphC&gdriven&mode/*u);ZDBJ_ARC(0,0,0,25,25,0);getch();closegraph();)void ZDBJ_ARC(float xO,float yO,float xl,float yl,float x2,float y2)float f=0.0,F;float dx=l,dy=l;while(abs(y l-y2)l)(if(f0)(x 1=x1;yl=yl-dy;putpixel(xl,yl,l);f=f-2*dy*abs(y 1-yO)+dy*dy;elsexl=xl+dx;yl=yl;pulpixel(xl,yl J);f
17、=f+2*dx*abs(x 1 -xO)+dx*dx;方法3:顺 1象限#include“gmphics.h 省略了图形初始化的步骤#include“conio.h#include math.hvoid main()(int x 1 =5,y 1 =0,x2=0,y2=5;int x0=0,y0=0;int R=sqrt(x2-x0)*(x2-x0)+(y2-y0)*(y2-y0);int dx=abs(x2-xl);int dy=abs(y2-yl);int n=dx+dy;putpixel(x2,y2,l);int f;int x=x2,y=y2;for(int i=O;i=0)putpi
18、xel(x,y-,l);elseputpixel(x+,y,l);)getch();closegraph();)另一种做法是采用课本P97页表4.2的公式4.编一程序用角度DDA法画一圆以圆点为圆心,半径为20的圆#include“graphics.h 省略了图形初始化的步骤#include conio.h#include math.hvoid main()(int x0=0,y0=0,R=20;int xl,yl,xi,yi;int N=R*8;float a=2*3.14/N;xl=20,yl=0;for(int i=l;i 0;而对于圆内的点,F(x,y)0 此处仅考虑如图所示的第一象限
19、内x o,A/的1/8圆弧,此时中点B r e s e n h a m画圆算法要从(0,R)到(R/J 5,R/、反)顺时针地确定最佳逼近于该圆弧的像素序列。由于最大位移方向为x,因此其基本原理:每次x方向上走一步,而y方向上或减1或减0。假定当前与圆弧最近者已确定,为P(X i,刈,那么下一候选像素只能是正右方的P u(X i +1,9)和右下方的P d(Xi+l,y i-l)到底选取哪一个候选点依旧用中点进行判别。假设M是Pu和Pd的中点,即有M(X i+l,y0.5),则当F(XM,y M)0,M在圆外,说明Pd离圆弧更近;当F(XM,y M)=O,则约定取P d。构造判别式 d j=F
20、(X M,yM)=F(X i +1,y0.5)=(X i +l)2+(y0.5)2-R2(1)当d i 0,取P u(X i+1,y。,计算下一步的的判别式d i+i=F(X u,yu)=F(x j +2,y i-0.5)=(X i +2)2+(y(-0.5)2-R?=d i+2 x j+3所以沿正右方向,&的增量为2 x i+3。(2)当dE O,取P d(X i+l,y i+l),计算下一步的的判别式d i+i=F(xd,y t)=F(X i +2,y i-1.5)=(x j +2)2+(y j-1.5)2-R?=d i+2(x r y i)+5所以沿右下方向,&的增量为2(X i-y D
21、+5。显然,所绘制圆弧段的第一个像素为P o(O,R),因此判别式d o的初始值为1.2 5-R,可以令d,=d-0.2 5来摆脱小数运算,则判别式&0对应于&-0.2 5,由于d始终是整数,d j -0.2 5等价于d i bP=p;m_maxlndex=len-1;void Bezier:draw()/通过公有函数调用私有函数(drawFrame();drawCurve();)void Bezier:drawFrame()其功能是绘制出多边形和各个端点(setcolor(12);for(int i=0;im_maxIndex;i+)line(bPi.x,bPi.y,bPi+l.x,bPi+
22、l.y);/绘制多边形circle(bPi.x,bPi.y,5);绘制各个端点circle(bPm_maxIndex.x,bPm_maxIndex.y,5);void Bezier:drawCurve()实现多段Bezier曲线绘制的功能(for(int i=0;i=m_maxIndex-3;i+=3)drawCurve(i,i+1 ,i+2,i+3);void Bezier:drawCurve(int pO,int pl,int p2,int p3)实现绘制某一段Bezier曲线的功能(double tmpx=0.0;double tmpy=0.0;double t=0.0;for(;tbP
23、=p;m_maxlndex=len;)void B_Spline:draw()/通过公有函数调用私有函数(drawFrame();drawCurve();)void B_Spline:drawFrame()其功能是绘制出多边形和各个端点(setcolor(12);for(int i=O;im_maxIndex-l;i+)line(bPi.x,bPi.y,bPi+l.x,bPi+l.y);/绘制多边形circle(bPi.x,bPi.y,5);绘制多边形各个端点circle(bPm_maxIndex-1 .x,bPm_maxIndex-1 .y,5);)void B_Spline:drawCur
24、ve()实现多段B样条曲线绘制的功能for(int i=0;im_maxIndex-2;i+)(drawCurve(i,i+1 ,i+2);void B_Spline:drawCurve(int pO,int pljnt p2)实现绘制某一段 Bezier 曲线的功能(double tmpx=0.0;double tmpy=0.0;double t=0.0;f o r(;t 736%+9792%+136000 a2=10564所求多项式为 y=f(x)=1.0793+1.0921 x-0.006796x2旬=1.0793%=1.0921a2=-0.0067961 3.设五边形的五个顶点坐标为(
25、10,10),(15,5),(12,5),(8,2)和(4,5),利用多边形区域填充算法,编一程序生成一个实心图。解:假设以上五个顶点依次对应编号A-B-C-D-E,首先计算得到ET表:该多边形的AET指针的内容为:1 AET为空具体编程实现如下:第 1 步:根据输入的五个顶点坐标找到y 值最小的点(例如点D,此时y=2),并找到与D有边关系的两个顶点(此时为E 和 C),在 y=2处建立ET边表记录(ymax、x i和 m 值均可通过顶点坐标间的计算得到,例如DE边的建立,特别注意:当 D 点和E 点 y 坐标值相同时,也即是D E与 x 轴平行,该边不能计入ET边表),之后标记D 点被访问
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 图形学 教学 方针 教案 课程 课后 习题集 参考 总结 答案 解析
限制150内