计算机图形学教程课后习题参考答案.docx

上传人:文*** 文档编号:68234761 上传时间:2022-12-27 格式:DOCX 页数:90 大小:480.34KB
返回 下载 相关 举报
计算机图形学教程课后习题参考答案.docx_第1页
第1页 / 共90页
计算机图形学教程课后习题参考答案.docx_第2页
第2页 / 共90页
点击查看更多>>
资源描述

《计算机图形学教程课后习题参考答案.docx》由会员分享,可在线阅读,更多相关《计算机图形学教程课后习题参考答案.docx(90页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第一章1、试述计算机图形学研究的基本内容?答:见课本P5-6页的L 1.4节。2、计算机图形学、图形处理与模式识别本质区别是什么?请各举一例说明。答:计算机图形学是研究根据给定的描述,用计算机生成相应的图形、图像,且所生成的图形、图像可以显示屏幕上、硬拷贝输出或作为数据集存在计算机中的学科。计算机图形学研究的是从数据描述到图形生成的过程。例如计算机动画制作。图形处理是利用计算机对原来存在物体的映像进行分析处理,然后再现图像。例如工业中的射线探伤。模式识别是指计算机对图形信息进行识别和分析描述,是从图形(图像)到描述的表达过程。例如邮件分捡设备扫描信件上手写的邮政编码,并将编码用图像复原成数字。

2、3、计算机图形学与CAD、CAM技术关系如何?答:见课本P4-5页的LL3节。4、举3个例子说明计算机图形学的应用。答:事务管理中的交互绘图应用图形学最多的领域之一是绘制事务管理中的各种图形。通过从简明的形式呈现出数据的模型和趋势以增加对复杂现象的理解,并促使决策的制定。地理信息系统地理信息系统是建立在地理图形基础上的信息管理系统。利用计算机图形生成技术可以绘制地理的、地质的以及其它自然现象的高精度勘探、测量图形。计算机动画用图形学的方法产生动画片,其形象逼真、生动,轻而易举地解决了人工绘图时难以解决的问题,大大提高了工作效率。5、计算机绘图有哪些特点?答:见课本P8页的1.3.1节。6、计算

3、机生成图形的方法有哪些?答:计算机生成图形的方法有两种:矢量法和描点法。矢量法:在显示屏上先给定一系列坐标点,然后控制电子束在屏幕上按一定的顺序扫描,逐个“点亮”临近两点间的短矢量,从而得到一条近似的曲线。尽管显示器产生的只是一些短直线的线段,但当直线段很短时,连成的曲线看起来还是光滑的。描点法:把显示屏幕分成有限个可发亮的离散点,每个离散点叫做一个像素,屏幕上由像素点组成的阵列称为光栅,曲线的绘制过程就是将该曲线在光栅上经过的那些像素点串接起来,使它们发亮,所显示的每一曲线都是由一定大小的像素点组成的。当像素点具有多种颜色或多种灰度等级时,就可以显示彩色图形或具有不同灰度的图形。7、当前计算

4、机图形学研究的课题有哪些?答:见课本P10T1页的1.4节。8、简述三维图形生成和输出的流水线?答:见课本P13页1.5.6.节。9、向量图形和点阵图形之间的区别有哪些?答:通过矢量法产生的图形称为矢量图形或者向量图形,用描点法产生的图形称为点阵图形。向量图形区别点阵图形的特点在于描述图形几何形状的数学模型及依据此模型生成几何图形的计算机命令。向量图形由各个基本图形构成,这就要求各个基本图形有各自独立的信息。如果用点阵图形来表示一个向量图形,构成向量图形的某个基本图形(如直线段、圆弧等)的所有点应有一个信息。因此,在描述一个基本图形时,同时要描述其相应的信息。向量图形最基本的优点是它本身是由精

5、确的数据给出,所以可以充分利用各种输出图形设备的分辨率尽可能精确地输出图形。也正因为如此,向量图形的尺寸可以任意变化而不损失图形显示的质量。但是向量图形仅适合于描绘简单图形,而点阵图形可以描绘绚烂多彩的复杂图形。10、什么是虚拟现实技术和可视化技术?答:虚拟现实技术:利用计算机生成一种模拟环境,通过多种传感器和设备使用户“投入”到该环境中,实现用户和该环境直接进行交互的技术。例如模拟飞机驾驶舱。可视化技术:通过对空间数据场构造中间几何因素,或用图形绘制技术在屏幕上产生二维图像。例如分子模型构造。第一草1、计算机图形系统有什么特点?有哪些主要功能?答:课本2.1.1的图22、计算机图形系统有哪几

6、种?各有什么特点?答:一种分类方法:交互式图形系统允许操作者以某种方式(对话方式或命令方式)来控制和操作图形生成过程,使得图形可以边生成、边显示、边修改,直至符合要求为止。而被动式绘图系统,图形在生成过程中,操作者无法对图形进行实时操作和控制,不具备交互功能,只提供各种图形命令或图形程序库,通过编程获得所需图形。另一种分类方法:见课本2. L 3节,分为脱机绘图系统、联机绘图系统和交互式绘图系统。3、阴极射线管由哪些部分组成?它们的功能分别是什么?答:CRT由四部分组成:电子枪、聚焦系统、偏转系统和荧光屏,这四部分都在真空管内。电子枪由灯丝、阴极和控制栅极组成。灯丝加热阴极,阴极表面向外发射自

7、由电子,控制栅控制自由电子是否向荧光屏发出,若允许电子通过,形成的电子流在到达屏幕的途中,被聚焦系统(电子透镜)聚焦成很窄的电子束,由偏转系统产生电子束的偏转电场(或磁场),使电子束左右、上下偏转,从而控制荧光屏上光点上下、左右运动,使得在指定时刻在屏幕指定位置上产生亮点。4、光栅扫描显示器由哪些部分组成?它们的功能分别是什么?答:见课本P21页图2.9所展示的组成框图,其后有各部分的介绍及功能。5、对于分辨率为1024*1024的光栅系统,若每一像素用8位和12位二进制来表示存储信息,各需多大光栅存储容量以及显存?每一屏幕最多能显示多少颜色?若R, G, B灰度都占8位,其显示颜色的总数是多

8、少?解:1)每一像素用8位二进制来表示存储信息,所需容量为1024*1024*1=22。(Byte)=1MB彩色素:28=256(项)2)若每一像素用12位二进制表示存储信息,所需容量为:1024*1024*1.5=1.5*220(Byte)=1.5MB (由于显示卡的显存是按2的指数次倍增长的,因此所需显存为2M)彩色素:*=4096(项)3)颜色总数:28*2*28=2(种)6、对于19英寸显示器,若X和Y两方向的分辨率相等,即1024*1024,那么每个像素点的直径是多少?解:也半=0.33(mm)或尸=0.013(英寸)1024 V21024V27、对于分辨率为1024X768的光栅系

9、统,若调色板设置为真彩色32位,此时需要显示一个三维图形,各需要多大光栅存储容量以及显存?答:调色板为真彩色32位,即意味着像素值的位长为32所需容量为1024*768*32/8*3=9MB因此所需要的显存为16M8、GKS有哪三种坐标系?它们有什么不同?试写出它们之间对应关系?答:GKS有3种不同的坐标系。第一种是供应用程序使用的实际世界坐标系统(World Coordinate System,简称WC);第二种是GKS内部使用的规范设备坐标系(Normalized Device Coordinate,简称 NDC),它的取值范围为0,1,这是一种既与设备无关也与应用无关的坐标系;第三种是各

10、工作站物理设备使用的设备坐标系(Device Coordinate System,简称DC)O GKS只支持二维对象的图形处理,因此上述3个坐标系都是二维坐标系。详见课本图3.28的描述。9、GKS中输入设备有哪6种逻辑功能?请各举出对应的物理设备。答:见课本2.4.5.节。10、当前主流的图形软件有哪些?答:见课本2.6.3节。第三章1、编写画一正方形程序,并在其中用不同的颜色画15个正方形,每一个都比前一个小。ttinclude “graphics, h”ttinclude conio.hvoid main()(int i,color=0,ls=0;int j=700;int gdrive

11、r=VGA;int gmode=VGAHI;initgraph(&gdriver,&gmode,”3-1批改说明;setbkcolor (15);必须至少包含graphics. hfor(i=0;i225;i=i+15, initgraph(&gdriver,&gmode,);(必须包含15个正方形,一般用forsetcolor (color);循环,也可能用到while等。bar(i, i, j, j);color+;ls+;getch();closegraph ();2、用不同的线形绘制题1中的图形 ttinclude “graphics, h”ttinclude a con io. hv

12、void main()(int i,color=l, ls=0;int j=700;3-2批改说明;int gdriver=VGA;注意查看3部分内容 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, Is,3);rectangle(i, i, j, j);setfillstyle(SOLID_FILL, color);/floodfill (getmax

13、xO/2, getmaxy ()/2, color);此句会出现最后只用一种颜色填充的情况color+;ls+;getch();closegraph ();3、画一五颜六色的图(此例为画一个五颜六色的圆)ttinclude “graphics, h”ttinclude “conio.hvoid main()int driver=DETECT, mode=0;int i, start, end;initgraph(&driver,&mode,”)3-3批改说明;start=0;必须至少包含graphics. hend=20; initgraph(&gdriver,&gmode,for(i=0;i

14、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);处于运动状态的自行车车轮的轴线的绘制put image (i-1,200, w, COPY PUT);line(2,327,562,327);delay(lO);自行车行驶动画的实现)for(i=0;iabs(y2-yl)length=abs (x2-xl);elselength二abs (y2-yl);increx=(x2-x

15、l)/length;increy=(y2-yl)/length;x=xl;y 二yl;for(i=l;i1)if(f=0)(xl=xl-dx;yl=yl;putpixel (xl, yl,1);f=f-2*dx*(xl-xO)+dx*dx;)elsexl=xl;yl=yl+dy;putpixel (xl, yl,1);f=f+2*dy*(yl-yO)+dy*dy;方法2:逆4象限tiinclude graphics, h”#include stdlib. h ttinclude conio. hvoid ZDBJ ARC(float xO,float yO, float xl,float yl

16、,float x2,float y2);void main()(int gdriver=CGA, mode=CGAC0;ini tgraph(&gdriver,&mode,);ZDBJ_ARC(0,0,0,25,25,0);getchO ;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(yl-y2)1)if(f0)(xl=xl;yl=yl-dy;putpixel (xl, yl,1);f=f-2

17、*dy*abs(yl-yO)+dy*dy;elsexl=xl+dx;yl=yl;putpixel(xl,yl,1);f=f+2*dx*abs(xl-xO)+dx*dx;方法3:顺1象限ttinclude “graphics, h”省略了图形初始化的步骤itinclude a con io. h#include math, h” void main()int xl=5,yl=0, x2=0, y2=5;int x0=0, y0=0;int R=sqrt(x2-xO)*(x2-x0)+(y2-y0)*(y2-y0);int dx=abs (x2-xl);int dy=abs(y2-yl);int

18、n=dx+dy;putpixel (x2,y2,1);int f;int x=x2, y=y2;for(int i=0;i=0)putpixel(x, y一,1);elseputpixel(x+,y,1);getchO ;closegraph ();)另一种做法是采用课本P97页表4.2的公式4 .编一程序用角度DDA法画一圆以圆点为圆心,半径为20的圆 ttinclude “graphics, h”省略了图形初始化的步骤 ttinclude “conio. h ttinclude “math, h” void main()(int x0=0, y0=0, R=20;int N=R*8;flo

19、at a=2*3.14/N;xl=20, yl=0;for(int i=l;i0;而对于圆内的点,F(x, y)0, M在圆外,说明Pd离圆弧更近;当F(Xm, y)=0,则约定取Pd。构造判别式&=F(Xm, yM)= F(xj +1, y0.5造(xi +l)2+(y,-0.5)2- R2(1)当&0,取Pu(xi +1, yj,计算下一步的的判别式&-i=F(Xu, yu)= F(xj +2, y0.5)=(x,+2尸+(丫0.5尸-R2=&+2xi+3所以沿正右方向,&的增量为2xi+3。(2)当&N0,取Pd(Xi +1, yi+l),计算下一步的的判别式&*尸Fix” yd)= F

20、(x(+2, y-1.5)=(x,+2)2+(yi-l.5)2- R2= di+2(xyJ+5所以沿右下方向,&的增量为2(xy,)+5。显然,所绘制圆弧段的第一个像素为Po(O, R),因此判别式d。的初始值为1.25-R,可以令d=d-0.25来摆脱小数运算,则判别式&以对应于&-0.25,由于d始终是整数,&-0.25等价于&bP=p;m_maxlndex=len-l; void Bezier:draw()通过公有函数调用私有函数(drawFrame ();drawCurve (); void Bezier:drawFrame()其功能是绘制出多边形和各个端点setcolor (12);

21、for(int i =0;im_maxIndex;i +)line( bPi.x, bPi.y, bPi+l.x, bPi+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, i

22、nt p3)实现绘制某一段Bezier曲线的功能(double tmpx=0.0;double tmpy=0.0;double t=0.0;for (;t(t)=1 t 1-220100270J10j140160155=30-170+-20230 t +110ttinclude “graphics, h”#include conio. h#include *stdio. h typedef struct (double x, y; DPOINT;定义结构体class B_Spline 定义B样条曲线类(private:DPOINT* bP;int m_maxlndex;有多少个型值点 void

23、 drawFrame();void drawCurve();void drawCurve(int pO,int pl, int p2);public:B Spline(DPOINT* p, int len);定义构造函数 void draw();;B_Spline:B_Spline(DPOINT* p, int len)构造函数的实现(this -bP=p; m maxlndex=len;)void B_Spline:draw()通过公有函数调用私有函数drawFrame ();drawCurve ();)void B_Spline:drawFrame()其功能是绘制出多边形和各个端点(set

24、color (12);for(int i=0;im_maxlndex-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:drawCurve()实现多段B样条曲线绘制的功能(for(int i =0;im_maxIndex-2;i +)(drawCurve (i, i+1, i+2);)void B_Spline:drawCurve(int pO, int p

25、l, int p2)实现绘制某一段Bezier曲线的功能(double tmpx=0.0;double tmpy=0.0;double t=0.0;for(;t=1.0;t+=0.001)(tmpx=(0.5*bPpO. x-bPpl, x+0.5*bPp2. x)*t*t+(-bPpO. x+bPpl. x)*t+0.5*bPpO. x+0.5*b Ppl.x;tmpy=(0.5*bPpO. y-bPpl, y+0.5*bPp2. y)*t*t+(-bPpO. y+bPpl. y)*t+O.5*bPpO. y+0.5*b Ppl.y;putpixel (tmpx, tmpy,3);)void

26、 mainO 主函数的实现(int graphdriver=DETECT,graphmode;initgraph(&graphdriver,&graphmode,*);图形初始化setbkcolor(15);DPOINT* p;p=new DPOINT4;p0. x=50.0;p0.y=130.0;pl. x=120.0;pl.y=40.0;p2.x=190.0;p2.y=130.0;p3. x=260.0;p3. y=40.0;B Spl ine b sp(p,4);b_sp. draw ();delete p;getchO ;closegraph();11 .简述NURBS曲线产生的背景和

27、特点?答:NURBS曲线具有局部可调性、凸包性、几何和透视投影变换不变性等等,它采用有理参数多项式可以精确表示圆锥曲线、二次曲面等,对于几何造型算法提供了思路。12 .将下列数据X 2610121416Y 3811131517按最小二乘法曲线拟合,分别求一次和二次多项式曲线,拟合以上数据并画图表zj O解:如下表所示:i1236412816268483628821612963101111010011001000100004121315614418721728207365141521019629402744384166161727225643524096655366067802736105649792136000一次多项式的情形:l 6即+60%=67Ca0=l.4608、60ao+736a=802-q=0.9706所求多项式为 y=f(x)=l.4608+0.9706x 二次多项式的情形:6 a0+60+736 a2-67a0=1.0793J60劭+736%+9792%=8020 J=1.0921736a0+9792ax +136000a2=10564a2=0.006796所求多项式为 y=f(x)=l.0793+1.0921X-0.006796x213.设五边形的五个顶点坐标为(10,10)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com