计算机图形学教程课后习题参考答案.
- 格式:doc
- 大小:566.50 KB
- 文档页数:54
第一章1、试述计算机图形学研究的基本内容?答:见课本P5-6页的1.1.4节。
2、计算机图形学、图形处理与模式识别本质区别是什么?请各举一例说明。
答:计算机图形学是研究根据给定的描述,用计算机生成相应的图形、图像,且所生成的图形、图像可以显示屏幕上、硬拷贝输出或作为数据集存在计算机中的学科。
计算机图形学研究的是从数据描述到图形生成的过程。
例如计算机动画制作。
图形处理是利用计算机对原来存在物体的映像进行分析处理,然后再现图像。
例如工业中的射线探伤。
模式识别是指计算机对图形信息进行识别和分析描述,是从图形(图像)到描述的表达过程。
例如邮件分捡设备扫描信件上手写的邮政编码,并将编码用图像复原成数字。
3、计算机图形学与CAD、CAM技术关系如何?答:见课本P4-5页的1.1.3节。
4、举3个例子说明计算机图形学的应用。
答:①事务管理中的交互绘图应用图形学最多的领域之一是绘制事务管理中的各种图形。
通过从简明的形式呈现出数据的模型和趋势以增加对复杂现象的理解,并促使决策的制定。
②地理信息系统地理信息系统是建立在地理图形基础上的信息管理系统。
利用计算机图形生成技术可以绘制地理的、地质的以及其它自然现象的高精度勘探、测量图形。
③计算机动画用图形学的方法产生动画片,其形象逼真、生动,轻而易举地解决了人工绘图时难以解决的问题,大大提高了工作效率。
5、计算机绘图有哪些特点?答:见课本P8页的1.3.1节。
6、计算机生成图形的方法有哪些?答:计算机生成图形的方法有两种:矢量法和描点法。
①矢量法:在显示屏上先给定一系列坐标点,然后控制电子束在屏幕上按一定的顺序扫描,逐个“点亮”临近两点间的短矢量,从而得到一条近似的曲线。
尽管显示器产生的只是一些短直线的线段,但当直线段很短时,连成的曲线看起来还是光滑的。
②描点法:把显示屏幕分成有限个可发亮的离散点,每个离散点叫做一个像素,屏幕上由像素点组成的阵列称为光栅,曲线的绘制过程就是将该曲线在光栅上经过的那些像素点串接起来,使它们发亮,所显示的每一曲线都是由一定大小的像素点组成的。
第三章答案3.1 修改Bresenham 算法,使之可绘制具有实线、虚线和点线等各种线型的直线,并且要求从键盘输入两端点坐标,就能在显示器屏幕上画出对应直线。
答案:(略)3.2 圆弧生成算法中,Bresenham 算法比正负法更合理的原因?答案:设圆的半径为R ,圆心在原点,则对于正负法,决定下一点走向的判别式为222(,)F x y x y R =+-,判别准则为:(,)0F x y ≤时,下一步取当前点的正右方的点;(,)0F x y >时,下一步取当前点正下方的点。
即若当前点在圆内,则下一步向圆外走;若当前点在圆外,则下一步向圆内走。
而对于Bresenham 算法,判别式为2222221111()()(1)(1)(1)i i i i i i i d D H D L x y R x y R ----=+=++-+++--判别准则为: 0<i d 时,下一步取当前点的正右方的点;0i d ≥时,下一步取当前点的正下方的点。
这说明Bresenham 算法在候选的两个像素中,总是选定离圆弧最近的像素为圆弧的一个近似点,因此,Bresenham 算法比正负法决定的像素更合理。
3.3 假设圆的中心不在原点,试编写算法对整个圆进行扫描转换。
答案:假设圆的方程为:222()()x a y b R -+-=,先用正负法、Bresenham 算法和圆的多边形迫近法这三种方法中的任一种生成圆心在原点的圆,再分别将x ,y 的坐标值加上a ,b ,得到的平移后的圆即所求的结果。
3.4 多边形的顶点和点阵表示各有什么优缺点?答案:顶点表示是用多边形的顶点序列来描述多边形。
该表示几何意义强、占内存少、几何变换方便;但它不能直观地说明哪些像素在多边形内,故不能直接用于面着色。
点阵表示用位于多边形内的像素的集合来描述多边形。
该方法虽然没有多边形的几何信息,但便于用帧缓存表示图形,可直接用于面着色。
3.5 在多边形的扫描线算法中,是如何处理奇点的?答案:为使每一条扫描线与多边形P 的边界的交点个数始终为偶数,规定当奇点是多边形P 的极值点时,该点按两个交点计算,否则按一个交点计算。
第七章1.什么叫几何造型?几何造型是一种技术,它能将物体的形状及其属性(如颜色、纹理等)存储在计算机内,形成该物体的三维几何模型,利用这个模型对原物体进行确切的数学描述或是对原物体某种状态进行真实模拟。
几何造型是用计算机及其图形工具表示、描述物体的形状,设计几何形体,模拟物体动态过程的一门综合技术。
它是集成CAD/CAM的基础,主要包括曲面造型、实体造型和特征造型三个分支。
2.几何造型有哪3种模型?各有什么特点?(1)线框模型线框模型表示的主体,不能充分反映出与计算机内部关于线数据和形状特征数据的关系;采用线框模型,在计算体积、重量等质量参数时,就无法利用隐线消去法,此外,这种模型很难表示圆筒或球之类的曲面立体。
由于线框模型的数据结构简单,具有计算机处理速度快的优点,因此用途还是很广的,特别是当未使用高性能计算机时,就能充分发挥其处理速度快的优点。
主体的线框模型在计算机生成后,利用投影法就可很容易得到立体的三视图,在制图领域中有很广泛的应用。
(2) 表面模型表面模型是在线框模型的基础上,增加了有关生成立体各表面的数据而构成的模型。
表面的定义就是一些指定某表面由哪些棱线按何种顺序组成的信息。
这种模型通常用于构造复杂的曲面物体,构形时常常利用线框功能,先构造一线框图,然后用扫描或旋转等手段变成曲面,当然也可以用系统提供的许多曲面图素来建立各种曲面模型。
表面模型由于比线框模型更高级、更优越,以及更易于在微机上实现等特点,在工程领域中有广泛的应用,特别是进行类似汽车外形设计这种有复杂表面设计工作的领域。
(3) 实体模型实体模型是3种模型中最重要的,也是出现最晚的。
实体模型的优点可以概括为:完整定义了立体图形,能区分内外部;能提供清晰的剖面图;能准确计算质量特性和有限元网格;方便机械运动的模拟。
3.分析比较CSG法与B-rep法优缺点。
CSG法(1)边界表示法强调的是形体的外表细节,详细记录了形体的所有几何和拓扑信息。
第一章1、试述计算机图形学研究的基本内容?答:见课本P5-6页的1.1.4节。
2、计算机图形学、图形处理与模式识别本质区别是什么?请各举一例说明。
答:计算机图形学是研究根据给定的描述,用计算机生成相应的图形、图像,且所生成的图形、图像可以显示屏幕上、硬拷贝输出或作为数据集存在计算机中的学科。
计算机图形学研究的是从数据描述到图形生成的过程。
例如计算机动画制作。
图形处理是利用计算机对原来存在物体的映像进行分析处理,然后再现图像。
例如工业中的射线探伤。
模式识别是指计算机对图形信息进行识别和分析描述,是从图形(图像)到描述的表达过程。
例如邮件分捡设备扫描信件上手写的邮政编码,并将编码用图像复原成数字。
3、计算机图形学与CAD、CAM技术关系如何?答:见课本P4-5页的1.1.3节。
4、举3个例子说明计算机图形学的应用。
答:①事务管理中的交互绘图应用图形学最多的领域之一是绘制事务管理中的各种图形。
通过从简明的形式呈现出数据的模型和趋势以增加对复杂现象的理解,并促使决策的制定。
②地理信息系统地理信息系统是建立在地理图形基础上的信息管理系统。
利用计算机图形生成技术可以绘制地理的、地质的以及其它自然现象的高精度勘探、测量图形。
③计算机动画用图形学的方法产生动画片,其形象逼真、生动,轻而易举地解决了人工绘图时难以解决的问题,大大提高了工作效率。
5、计算机绘图有哪些特点?答:见课本P8页的1.3.1节。
6、计算机生成图形的方法有哪些?答:计算机生成图形的方法有两种:矢量法和描点法。
①矢量法:在显示屏上先给定一系列坐标点,然后控制电子束在屏幕上按一定的顺序扫描,逐个“点亮”临近两点间的短矢量,从而得到一条近似的曲线。
尽管显示器产生的只是一些短直线的线段,但当直线段很短时,连成的曲线看起来还是光滑的。
②描点法:把显示屏幕分成有限个可发亮的离散点,每个离散点叫做一个像素,屏幕上由像素点组成的阵列称为光栅,曲线的绘制过程就是将该曲线在光栅上经过的那些像素点串接起来,使它们发亮,所显示的每一曲线都是由一定大小的像素点组成的。
当像素点具有多种颜色或多种灰度等级时,就可以显示彩色图形或具有不同灰度的图形。
7、当前计算机图形学研究的课题有哪些?答:见课本P10-11页的1.4节。
8、简述三维图形生成和输出的流水线?答:见课本P13页1.5.6.节。
9、向量图形和点阵图形之间的区别有哪些?答:通过矢量法产生的图形称为矢量图形或者向量图形,用描点法产生的图形称为点阵图形。
向量图形区别点阵图形的特点在于描述图形几何形状的数学模型及依据此模型生成几何图形的计算机命令。
向量图形由各个基本图形构成,这就要求各个基本图形有各自独立的信息。
如果用点阵图形来表示一个向量图形,构成向量图形的某个基本图形(如直线段、圆弧等)的所有点应有一个信息。
因此,在描述一个基本图形时,同时要描述其相应的信息。
向量图形最基本的优点是它本身是由精确的数据给出,所以可以充分利用各种输出图形设备的分辨率尽可能精确地输出图形。
也正因为如此,向量图形的尺寸可以任意变化而不损失图形显示的质量。
但是向量图形仅适合于描绘简单图形,而点阵图形可以描绘绚烂多彩的复杂图形。
10、什么是虚拟现实技术和可视化技术?答:虚拟现实技术:利用计算机生成一种模拟环境,通过多种传感器和设备使用户“投入”到该环境中,实现用户和该环境直接进行交互的技术。
例如模拟飞机驾驶舱。
可视化技术:通过对空间数据场构造中间几何因素,或用图形绘制技术在屏幕上产生二维图像。
例如分子模型构造。
第二章1、计算机图形系统有什么特点?有哪些主要功能?答:课本2.1.1的图2.1展示了计算机图形系统的组成。
计算机图形系统是为了支持应用程序,便于实现图形的输入输出的硬件和软件组合体。
没有图形系统支持,就难以实现应用软件的开发。
主要功能见课本2.1.2节。
2、计算机图形系统有哪几种?各有什么特点?答:一种分类方法:交互式图形系统允许操作者以某种方式(对话方式或命令方式)来控制和操作图形生成过程,使得图形可以边生成、边显示、边修改,直至符合要求为止。
而被动式绘图系统,图形在生成过程中,操作者无法对图形进行实时操作和控制,不具备交互功能,只提供各种图形命令或图形程序库,通过编程获得所需图形。
另一种分类方法:见课本2.1.3节,分为脱机绘图系统、联机绘图系统和交互式绘图系统。
3、阴极射线管由哪些部分组成?它们的功能分别是什么?答:CRT由四部分组成:电子枪、聚焦系统、偏转系统和荧光屏,这四部分都在真空管内。
电子枪由灯丝、阴极和控制栅极组成。
灯丝加热阴极,阴极表面向外发射自由电子,控制栅控制自由电子是否向荧光屏发出,若允许电子通过,形成的电子流在到达屏幕的途中,被聚焦系统(电子透镜)聚焦成很窄的电子束,由偏转系统产生电子束的偏转电场(或磁场),使电子束左右、上下偏转,从而控制荧光屏上光点上下、左右运动,使得在指定时刻在屏幕指定位置上产生亮点。
4、光栅扫描显示器由哪些部分组成?它们的功能分别是什么?答:见课本P21页图2.9所展示的组成框图,其后有各部分的介绍及功能。
5、对于分辨率为1024*1024的光栅系统,若每一像素用8位和12位二进制来表示存储信息,各需多大光栅存储容量以及显存?每一屏幕最多能显示多少颜色?若R ,G ,B 灰度都占8位,其显示颜色的总数是多少?解:1)每一像素用8位二进制来表示存储信息,所需容量为1024*1024*1=202(Byte )=1MB 彩色素:82=256(项)2)若每一像素用12位二进制表示存储信息,所需容量为:1024*1024*1.5=1.5*202(Byte) =1.5MB (由于显示卡的显存是按2的指数次倍增长的,因此所需显存为2M)彩色素:122=4096( 项)3)颜色总数:28*28*28=224=16777216(种)6、对于19英寸显示器,若X 和Y 两方向的分辨率相等,即1024*1024,那么每个像素点的直径是多少?解: 210244.25*19=0.33(mm )或2102419=0.013(英寸) 7、对于分辨率为1024×768的光栅系统,若调色板设置为真彩色32位,此时需要显示一个三维图形,各需要多大光栅存储容量以及显存?答:调色板为真彩色32位,即意味着像素值的位长为32所需容量为1024*768*32/8*3=9MB 因此所需要的显存为16M8、GKS 有哪三种坐标系?它们有什么不同?试写出它们之间对应关系?答:GKS 有3种不同的坐标系。
第一种是供应用程序使用的实际世界坐标系统(World Coordinate System ,简称 WC );第二种是GKS 内部使用的规范设备坐标系(Normalized Device Coordinate ,简称NDC ),它的取值范围为[0,1],这是一种既与设备无关也与应用无关的坐标系;第三种是各工作站物理设备使用的设备坐标系(Device Coordinate System ,简称DC )。
GKS 只支持二维对象的图形处理,因此上述3个坐标系都是二维坐标系。
详见课本图3.28的描述。
9、GKS 中输入设备有哪6种逻辑功能?请各举出对应的物理设备。
答:见课本2.4.5.节。
10、当前主流的图形软件有哪些?答:见课本2.6.3节。
第三章1、编写画一正方形程序,并在其中用不同的颜色画15个正方形,每一个都比前一个小。
#include“graphics.h”#include“conio.h”void main(){int i,color=0,ls=0;int j=700;int gdriver=VGA;initgraph(&gdriver,&gmode,””);setbkcolor(15);for(i=0;i<225;i=i+15, j=j-30){setcolor(color);bar(i,i,j,j);color++;ls++;}getch();closegraph();}2、用不同的线形绘制题1中的图形#include“graphics.h”#include“conio.h”void main(){int i,color=1,ls=0;int j=700;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,j,j);setfillstyle(SOLID_FILL,color);//floodfill(getmaxx()/2,getmaxy()/2,color); 此句会出现最后只用一种颜色填充的情况color++;ls++;}getch();closegraph();}3、画一五颜六色的图(此例为画一个五颜六色的圆)#include“graphics.h”#include“conio.h”void main(){int driver=DETECT,mode=0;int i,start,end;start=0;end=20;for(i=0;i<18;i++){setfillstyle(SOLID_FILL,i);pieslice(300,200,start,end,100);start+=20;end+=20;}getch();restorecrtmode();}4、编写一辆自行车在一公路上由右至左快速行驶的程序。
#include"stdlib.h"#include"graphics.h"#include"conio.h"#include"stdio.h"void main(){void *w;int driver=DETECT,mode=0,i,start,end,j;initgraph(&driver,&mode," ");cleardevice();setbkcolor(15);setcolor(CGA-LIGHTGREEN);start=0;end=180;circle(387,290,37);circle(525,290,37);line(404,217,398,230);line(436,217,429,230);line(398,230,429,230);line(413,230,387,290);line(387,290,525,290);line(408,243,484,243);line(387,290,484,243);line(484,243,525,290);line(444,290,484,243);line(444,290,446,279);line(444,290,443,300);line(438,277,444,278);line(435,300,451,301);line(484,243,487,233);line(472,233,502,233); //自行车基本轮廓的绘制w=malloc(imagesize(350,200,562,327));getimage(350,200,562,327,w);for(i=350,j=0;i>0;i--,j--){setfillstyle(EMPTY_FILL,0);pieslice(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(10); //自行车行驶动画的实现}for(i=0;i<10;i++){pieslice(37,290,start,end,37);pieslice(175,290,start,end,37);start+=40;end+=40;} //处于静止状态的自行车车轮的轴线的绘制getch();restorecrtmode();closegraph();}5、试自行设计一个美术图案,并且用程序实现。