计算机图形学作业
计算机图形学上机作业
计算机图形学(选作以下任意1—11题)1 用中点Bresenham 算法设计直线、圆、椭圆的算法,实现任意斜率的直线、圆、椭圆的绘制;2 使用有效边表算法填充多边形。
多边形的7个顶点分别为:P 0(500,400), P 1(350,600), P 2(250,350), P 3(350,50), P 4(500,250), P 5(700,50), P 6(800,450)。
3 使用四邻接点填充算法填充上述多边形。
4 在屏幕中心显示矩形窗口,使用Cohen-Sutherland 直线段裁剪算法实现任意直线的裁剪5 在屏幕中心显示矩形窗口,使用中点分割直线裁剪算法实现任意直线的裁剪6 在屏幕中心显示矩形窗口,使用梁友栋-Barsky 直线段裁剪算法实现任意直线的裁剪7使用斜等侧投影绘制图1所示多面体的投影图及其三视图,要求使用矩阵变换方法编程实现。
图1 图28 已知17个型值点:P 1(-360,0),P 2(-315,-71),P 3(-270,-100),P 4(-225,-71),P 5(-180,0),P 6(-135,71),P 7(-90,100),P 8(-45,71),P 9(0,0),P 10(45,-71),P 11(90,-100),P 12(135,-71),P 13(180,0),P 14(225,71),P 15(270,100),P 16(315,71),P 17(360,0)。
边界条件为:自由端。
编程绘制通过给定型值点的三次参数样条曲线和正弦曲线,试比较二者之间差异。
9 根据三次Bezier 曲线的基函数,编程绘制如图2所示三次Bezier 曲线。
10. 给定9个控制点:P0(150,350),P 1(250,250),P 2(350,350),P 3(428,167),P 4(525,440),P 5(650,250),P 6(682,40),P 7(850,450),P 8(950,350)。
(完整word版)《计算机图形学》练习测试题及参考答案
《计算机图形学》测试题一、名词解释:(每个4分)1.计算机图形学2.图象处理3.模式识别4.计算几何5.凸多边形6.种子填充算法7.窗口8.视区9.光顺性10.拟合11.多项式插值12.小挠度曲线13.图形变换14.齐次坐标系15.凸包16.轮廓线17.等值线18.图形的翼边表示19.ER模型20.图形消隐21.本影22.半影23.用户坐标系24.规范化设备坐标系25.构造26.约束技术27.光线跟踪28、走样29、CRT(Cathode Ray Tube)30、隔行(interlaced)扫描31、输入模式32、取样方式(sample mode)33、区域34、边界表示法35、复合变换36、二维复合平移37.二维复合比例38.二维复合旋转39.视区(Viewport)40、投影变换41、平面几何投影42。
参数图43。
像素图44.人机界面45.地理信息系统46.虚拟现实47.几何造型技术48.扫描转换49. 插值曲线50.逼近曲线51. 用户接口52。
交互技术53. 交互式图形系统的基本交互任务54. 定位任务55。
选择任务56。
拾取任务57 。
选择技术58. 菜单技术59。
文字输入任务60. 数值输入任务61.动画62.帧63.场64。
消隐65。
物体空间的消隐算法66。
漫反射光67。
环境光68. 镜面反射光二、选择题(每题2分)1、计算机图形学与计算几何之间的关系是()。
A)学术上的同义词B)计算机图形学以计算几何为理论基础C)计算几何是计算机图形学的前身D).两门毫不相干的学科2、计算机图形学与计算机图象学的关系是( ).A)计算机图形学是基础,计算机图象学是其发展B)不同的学科,研究对象和数学基础都不同,但它们之间也有可转换部分C)同一学科在不同场合的不同称呼而已D)完全不同的学科,两者毫不相干3、触摸屏是()设备。
A)输入B)输出C)输入输出D)既不是输入也不是输出4.计算机绘图设备一般使用什么颜色模型?()A)RGB;B)CMY;C)HSV ;D)HLS5。
计算机图形学作业
1•什么是图形?在计算机中,图形是如何表示的?计算机图形学的主要研究内容是什么?答:从广义上说,能够在人的视觉系统中形成的视觉印象的客观对象都称为图形。
在计算机图形学中,图形是对客观对象的一种抽象表示,它带有形状和颜色信息。
在计算机中,图形通过用点陈法和参数法来表示图形。
计算机图形学的主要研究内容是图形的输入,图形的处理,图形的生成和输出。
2•试举例说明计算机图形学的应用。
答:图形用户界面,计算机辅助设计,科学计算可视化,科技、教育、商业领域中的交互式绘图,计算机艺术,地理信息系统,计算机动画、广告及娱乐,多媒体系统,虚拟现实系统。
3.试列举出你所知道的图形输入与输出设备。
答:图形输入设备:鼠标,图形输入板,跟踪球,光笔,触摸屏,操纵杆,空间球,数据手套。
图形输出设备:阴极射线管显示器,液晶显示器,等离子显示器,绘图仪。
4.你用过哪些图形软件包?把它们列举出来。
答:OpenGL DirectX。
5.阴极射线管有哪几个部分组成?它们的功能分别是什么?答:阴极射线管有五部分组成:电子枪,聚焦系统,加速电极,偏转系统,荧光屏。
电子枪的功能:电流通过灯丝产生热量,对阴极加热使其发出电子束,控制电子束的强弱和数量。
聚焦系统的功能:聚焦系统通过电场或磁场控制电子束,使电子束“变细”,保证轰击荧光屏时产生的亮点足够小,提高显示系统的分辨率。
加速电极的功能:加速电极加有正的高电压,使经过聚焦的电子束高速运动。
偏转系统的功能:控制电子束的水平方向上和竖直方向上的偏转。
荧光屏的功能:显示图形。
6.什么叫刷新?刷新频率与荧光物质的持续发光时间的关系如何?答:在画线显示器中,电子束在荧光屏上产生的亮点只能持续极短的时间,为了产生静态的不闪烁的图形,电子束必须周期性地反复扫描所要绘制的图形,这种扫描过程称为刷新。
刷新频率一般要达到30Hz,图形才不闪烁。
持续发光时间是决定产生稳定画面所需刷新频率的主要因素,它的值越大,所需的刷新频率越低。
《计算机图形学》题集
《计算机图形学》题集一、选择题(每题2分,共20分)1.计算机图形学主要研究的是:A. 计算机硬件的设计B. 计算机软件的开发C. 图像的生成、处理与显示D. 计算机网络技术2.下列哪个不是计算机图形学的应用领域?A. 游戏开发B. 医学影像处理C. 文字编辑D. 三维动画制作3.在计算机图形学中,像素(Pixel)是:A. 图像的最小单位B. 显示器的大小C. 图像的分辨率D. 图像的颜色深度4.下列哪个是光栅图形显示器的特点?A. 直接使用矢量数据表示图像B. 图像由像素阵列组成C. 分辨率固定不变D. 不适用于动态图像显示5.在三维图形变换中,平移变换不会改变物体的:A. 形状B. 大小C. 方向D. 位置6.下列哪个算法常用于三维图形的消隐处理?A. 光线追踪算法B. Z-Buffer算法C. 纹理映射算法D. 反走样算法7.在计算机图形学中,下列哪个术语用于描述物体表面的明暗程度?A. 色彩B. 光照模型C. 纹理D. 透明度8.下列哪个不是计算机图形学中的基本图形生成算法?A. 中点画线算法B. Bresenham画圆算法C. 扫描线填充算法D. Cohen-Sutherland线段裁剪算法9.在计算机图形学中,下列哪个概念用于描述物体的三维形状?A. 像素B. 几何模型C. 色彩模型D. 光照模型10.下列哪个不是真实感图形生成的基本步骤?A. 几何建模B. 光照模型计算C. 纹理映射D. 数据压缩二、填空题(每题2分,共14分)1.计算机图形学中的“图形”主要分为两大类:和。
2.在三维图形变换中,旋转变换可以使用______矩阵来实现。
3.在计算机图形学中,______是指使用数学方法来模拟真实世界中光线与物体表面的相互作用。
4.在进行三维图形的消隐处理时,______算法是一种常用的方法,它通过维护一个深度缓冲区来实现。
5.在计算机图形学中,______是一种常用的图像滤波技术,可以用于图像的平滑处理。
计算机图形学作业及答案
计算机图形学作业及答案1、计算机图形系统的组成包括哪些?答:计算机图形系统由硬件和软件两部分组成,硬件包括:主计算机、图形显示器以及I/O 交互工具和存储设备;软件包括操作系统、高级语言、图形软件和应用软件。
现代计算机图形系统与一般计算机系统最主要的差别是具有图形的输入、输出设备以及必要的交互工具,在速度和存储容量上具有较高的要求。
另外,人也是这个系统的组成部分。
2、简述光栅扫描式显示器的性能指标?答:⑴分辨率:指显示器在屏幕水平(垂直)方向可显示多少像素,分辨率以象素点为基本单位。
表示方法为320×200、640×480等。
显示分辨率与显卡上的缓冲存储器的容量有关,容量越大,显示分辨率越高。
分辨率越高,显示的字符或图像越清晰。
⑵ 亮度等级数目和色彩:指单种颜色亮度可变化的数目,亮度等级范围的提升可使图像看 上去更柔和自然色彩包括可选择显示颜色的数目以及一帧画面可同时显示的颜色数。
⑶ 显示速度:指显示字符、图形,特别是动态图像的速度,可用最大带宽表示:水平像素 数*垂直像素数*最大刷新率。
3、具有相同分辨率的彩色光栅显示器与黑白光栅在结构上有何区别? 答:彩色:对于红、绿、蓝的三个原色有三个位面的帧缓存和三个电子枪,每个位面的帧缓冲对应一个电子枪即对应一种颜色;对每个颜色的电子枪可以通过增加帧缓存位面来提高颜色种类和灰度级,通过三种原色的组合可以产生不同种类的颜色。
彩色光栅显示器主要是有红、绿、蓝的三个原色所组成,每种原色电子枪有8个位面的帧缓存和8位的数模转换器,每种原色有256种亮度,三种原色组合可为16771216种颜色,也可以通过颜色查找表查找,故帧缓存位数至少24位。
黑白:黑白光栅显示器的帧缓存是一块连续的计算机存储器,每个像素需1位存储器,每个存储器只有0或1两个状态。
因此一个位面的帧缓存只能产生黑白图形。
可以增加象素点的位面数,通过多个位面显示出多种灰度级。
《计算机图形学》习题
一、名词解释计算机图形学、图形消隐、裁剪、走样、反走样、参数方程、曲线拟合、曲线插值、曲线的参数化、区域填充、扫描转换二、判断正误(正确写T,错误写F)1.存储颜色和亮度信息的相应存储器称为帧缓冲存储器,所存储的信息被称为位图。
2.光栅扫描显示器的屏幕分为m行扫描线,每行n个小点,整个屏幕分为m╳n个中点,其中每个小点称为一个像素。
3.点阵字符用一个位图来表示,位图中的0对应点亮的像素,用前景色绘制;位图中的1对应未点亮的像素,用背景色绘制。
4.矢量字符表示法用(曲)线段记录字形的边缘轮廓线。
5.将矢量字符旋转或放大时,显示的结果通常会变得粗糙难看,同样的变换不会改变点阵字符的显示效果。
6.在光栅图形中,区域是由相连的像素组成的集合,这些像素具有相同的属性值或者它们位于某边界线的内部。
7.多边形的扫描变换算法不需要预先定义区域内部或边界的像素值。
8.用DDA算法生成圆周或椭圆不需要用到三角运算,所以运算效率高。
9.找出并消除物体中的不可见部分,称为消隐。
10.经过消隐得到的图形称为消隐图。
11.深度缓存算法并不需要开辟一个与图像大小相等的深度缓存数组,深度缓存算法能并行实现,深度缓存算法中没有对多边形进行排序。
12.在种子填充算法中所提到的八向连通区域算法同时可填充四向连通区。
13.Bezier曲线不一定通过其特征多边形的各个顶点,Bezier曲线两端点处的切线方向必须与起特征折线集(多边形)的相应两端线段走向一致,Bezier曲线可用其特征多边形来定义。
14.由三个顶点可以决定一段二次B样条曲线,若三顶点共线时则所得到的曲线褪化为一条直线段。
15.插值得到的函数严格经过所给定的数据点。
16.参数曲线的表示有形式和几何形式两种。
17.L-B参数直线裁剪算法中的裁剪条件为uP k<=Q k,当直线平行于裁剪边界的条件Q k=0。
18.L-B参数直线裁剪算法中的裁剪条件为uP k<=Q k,当P k<0时表示线段从裁剪边界外部指向内部。
计算机图形学作业答案
计算机图形学作业答案一、选择题1.第一个图形软件标准是___B_____;A. OpenGLB. GKSC. DirectXD. PHIG2.CRT显示器需要不断刷新的原因是__D___________;A.电子束强度不够B. 显示的图像在不断变化C. 荧光物质的亮度不够D. 荧光物质的亮度会逐渐衰减3.如果用一个单位立方体来表示RGB颜色空间,那么坐标(1,0,1)表示的颜色是______C____色;A.青 B.黄 C.品红 D.洋红4.位面数为16,分辨率为1024*1024的光栅扫描图形显示器,帧缓存容量为_______C____; A.512KB B. 1MB C. 2MB D 3MB5.下列关于光栅扫描显示器的性能指标的说法,错误的是___B______;1) 分辨率越高,相邻像素点之间的距离越小,显示的字符或图像就越清晰2) 刷新频率越高,图像闪烁和抖动的就越厉害3) 点距越小,显示出来的图像越细腻,其成本越高4) 行频是指电子枪每秒在屏幕上扫描过的行数,行频越大越好,至少要达到50KHz5) 亮度等级范围的提升可以使图像看上去更加柔和自然6) 显示速度指显示字符、图形,特别是动态图像的速度,与显示图形的复杂程度有关A.1),3),6) B.2),4),6) C.3),4),5) D.1),2),5)6.中点算法生成圆,第i个点的坐标位置为(xi,yi),当决策变量di>0时,第i+1个点的坐标位置和决策变量分别为_____B________;A.(xi+1,yi+1)=(xi+1,yi),di+1=di+2(xi-yi)+5;B.(xi+1,yi+1)=(xi+1,yi-1),di+1=di+2(xi-yi)+5;C.(xi+1,yi+1)=(xi+1,yi),di+1=di+2xi+3;D.(xi+1,yi+1)=(xi+1,yi-1),di+1=di+2xi+3;7. 下列对于ET表的描述,正确的是____C_________;1) ET表是根据AET表生成的;2) 在做奇异点处理时,当该边最大y值对应的顶点为局部极值点时,边记录的第一项:ymax=ymax-1;3) ET表的第二项为某边的最小的y对应的x值;4) ET表对水平边不需要进行登记;A.1),2) B. 2),4) C.3),4) D. 1),3)8. 能比较容易地找到通过一个点或和一个圆相切的直线的位置的交互技术是____C______;A.约束技术 B. 网格技术 C. 橡皮筋技术 D. 操作柄技术9. 在____C___模式下,输入过程和应用程序并发运作。
计算机图形学作业答案
一、判断题1、自由曲线可以用一条标准代数方程来描述。
( X )2、插值样条曲线通过所有的型值点。
( X )3、几何形体一包含两种重要信息:几何信息和拓扑信息。
( √ )4、标准的解析形状(圆锥曲线、二次曲面等)可也以用非均匀有理B 样条函数(NURBS )来表示。
( √ )5、曲线在某点处的曲率越大,曲线在该点看上去越弯曲。
( √ )二、填空题1、计算机图形系统的输入设备除了常用的键盘和鼠标外,一般还要配备 空间球 和 数据手套 。
2、写出你所知道的计算机图形系统软件(3个) AutoCAD 、 UG 、Pro/E 。
34、直线的生成算法主要有 DDA 画线法 、 中点画线法 和Bresenham 画线算法。
5、在生成圆时,考虑到圆的对称性,只要能生成 8分圆 ,那么圆的其它部分可 通过简单反射变换得到。
6、在种子填充算法中,从当前点检测相邻像素的方法有两种, 四向连通和八向连通 。
7、由多种基本变换组合而成的变换称为组合变换 。
8、扫描表示法是指通过 平移、 旋转 及其它对称变换来构造三维物体的方法。
9、二维基本变换包括比例变换、对称变换、 旋转变换 、 错切变换 和平移变换。
10、使用二维图形变换矩阵:T =⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-100001010 如果图形的一个顶点坐标为A (6,8),则变换后的坐标 。
三、 名词解释1、计算机图形学:是关于利用计算机及其相关图形设备输入、表示、生成、存储、处理、显示和输出图形的理论、算法、技术及系统的一门综合性学科。
2、齐次坐标法:齐次坐标就是将一个原本是n 维的向量用一个n+1维向量来表示,是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换。
四、综合题1、请写出中点画线算法的C 语言描述代码。
(仅考虑0<k<1的情况)2、已知三角形各顶点坐标为(10,10),(10,30)和(30,20),作下列变换,写出变换的矩阵,画出变换后的图形。
计算机图形学作业
计算机图形学作业(总3页) --本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--计算机图形学第一次作业计算机X班 XXX 1XXX010XXX1.你是否想用图形学的有关知识去解决一两个实际问题你想解决的问题是什么考虑如何解决答:我希望可以解决的有设计汽车外壳和制作动画。
解决方法:(1)汽车外壳使用3D MAX/AutoCAD软件进行设计。
(2)制作动画利用动画制作软件(3D MAX)在计算机上制作动画2.某彩色图形显示系统,CRT显示器的分辨率为1024×1024,它可以从2^17次方种颜色中选择出2^15次方来显示,其帧缓冲器的容量应该如何计算查色表的长度和宽度应为多少解:16b==2B因为分辨率为1024x1024所以1024*1024*2B=2MB3.采用Bresenham画线算法,绘出起点(1,3),终点为(9,18)的直线段。
解:void DrawBresenhamline(int x0, int y0, int x1, int y1){int dx = x1 - x0;中点画圆法生成圆心在(3,-2),半径为12的上半个半圆。
解:cen = [3 0];r = 3;t = linspace(0, 2*pi);x = cen(1) + r*cos(t);y = cen(2) + r*sin(t);y(y<0) = NaN;figure; box on; hold on;plot(x, y, 'r-');axis equal;plot([min(x), max(x)], [0 0], 'k-');。
大学计算机图形学练习题及答案
大学计算机图形学练习题及答案
一、选择题
1. 下列关于光栅图形学的说法,正确的是:
A. 光线追踪是光栅图形学的一种重要算法。
B. 光栅图形学是一种基于向量计算的图形学方法。
C. 光栅图形学主要解决几何形状的表示和计算问题。
D. 光栅图形学的核心是基于线段的绘制算法。
2. 阴影生成的基本原理是:
A. 根据物体表面的点击和材质属性计算出光的入射角,并根据入射角生成阴影。
B. 根据物体的几何形状和光源位置计算出影子区域,并在屏幕上进行绘制。
C. 根据光源所在位置以及物体的几何形状生成投影,并在屏幕上进行绘制。
D. 根据物体与光源的相对位置计算出光的强度,从而生成阴影。
3. 渲染管线中,下列哪个阶段将几何形状转换成像素?
A. 光照计算
B. 投影变换
C. 图元装配
D. 光栅化
二、简答题
1. 什么是三角形剪裁?请简要描述剪裁过程中的算法步骤。
2. 请简述光线追踪算法的基本原理,并说明其在图形学中的应用场景。
三、编程题
请使用任意编程语言实现一个简单的光线跟踪算法,并渲染一个球
体和一个平面,要求球体具有反射和折射效果。
注:以上是大学计算机图形学的练习题。
根据题目要求,请自行选
择合适的格式进行回答,可以分节论述,但请注意避免使用“小节一”、“小标题”等词语。
计算机图形学作业-Model-答案
计算机图形学作业 II一、判断题1.插值得到的函数严格经过所给定的数据点;逼近是在某种意义上的最佳近似;( √ )2.一次Bezier 曲线其实就是连接起点到终点的折线段。
( √ )3. NURBS 曲线方法不能够提供标准二次曲线和自由曲线的统一数学表达。
( ⨯ )4. 凡满足C1连续的曲线同时满足G1连续条件,反之则不成立; ( √ )5.Bezier 曲线具有对称性质。
( ⨯ )二、填空题1. 三维物体的的布尔运算包括 交 、 并 和 差 。
2. 多边形的边通常用它的边环表来表示,外环的方向是由外轮廓顶点按逆时针 方向组成、内环是内轮廓顶点按顺时针方向组成。
3. 由5个控制顶点Pi(i=0,1,…4)所决定的3次B 样条曲线,由ˍ2ˍ段3次B 样条曲线段光滑连接而成。
4. )10)((,≤≤t t B n i 是n 次Bernstein 基函数,则=∑=ni n i t B 0,)(ˍˍ1ˍˍ。
5. 几何建模技术中描述的物体信息一般包括_拓扑信息_和_几何信息_。
三、问答题1.图象处理、模式识别、计算机图形学是图形信息的计算机处理有关的三大分之学科。
简述它们的不同点?图像处理是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的过程,主要以提高图像的视感质量、提取图像中所包含的某些特征和特殊信息、图像数据的变换以及编码压缩以提高图像的存储和传输为目的;模式识别是图像处理的一个部分,指的是提取特征或信息的过程;计算机图形学是使用计算机建立、存贮、处理某个对象的模型的过程。
总的来说,计算机图形学是图像处理的逆过程。
2.三维形体常用的表示方法是什么?简述几何信息和拓扑信息的含义。
三维形体常用的表示方法有:线框模型表示、表面模型表示、实体模型表示。
几何信息:反映图形中的点、线、面、体等几何要素的信息称为几何信息。
拓扑信息:反映图形中的点、线、面、体等的连接顺序,层次关系的信息3.三次参数样条曲线和n 次Bezier 曲线的特点分别是什么?三次参数样条曲线是分段多项式,在每段内部是任意阶连续,在节点处具有2阶参数连续性;而n 次Bezier 曲线是多项式,是任意阶连续。
计算机图形学作业.
计算机图形学作业.习题⼀1.计算机图形学的定义是什么?说明计算机图形学、图像处理和模式识别之间的关系。
答:CG是计算机图形学的缩写。
随着以计算机为主要⼯具进⾏视觉设计和⽣产的⼀系列相关产业的形成,国际上习惯将利⽤计算机技术进⾏视觉设计和⽣产的领域通称为CG。
计算机图形学是⼀门研究如何利⽤计算机表⽰、⽣成、处理和显⽰图形的学科。
图形主要分为两类,⼀类是基于线条表⽰的⼏何图形,另⼀类是基于材质、纹理和光照表⽰的真实感图形。
图形的表⽰⽅法有两种:参数法和点阵法。
⼀般将⽤参数法描述的图形仍然称为图形,将⽤点阵描述的图形称为图像。
计算机图形学就是研究将图形的表⽰法从参数法转换为点阵法的⼀门学科,或者简单地说,计算机图形就是计算机产⽣的图像。
计算机图形学是研究如何利⽤计算机把描述图形的⼏何模型通过指定的算法转化为图像显⽰的⼀门学科;图像处理主要是指对数字图像进⾏增强、去噪、复原、分割、重建、编码、存储、压缩和恢复等不同处理⽅法的学科;模式识别是对点阵图像进⾏特征抽取,然后利⽤统计学⽅法给出图形描述的学科。
近年来,随着光栅扫描显⽰器的⼴泛应⽤,这3门学科之间的界限越来越模糊,甚⾄出现了相互渗透和融合,这3个学科是相互促进和发展的。
3.名词解释:点阵法、参数法、图形、图像的含义。
答:点阵法是在显⽰阶段⽤具有颜⾊信息的像素点阵来表⽰图形的⼀种⽅法,描述的图形常称为图像。
参数法是在设计阶段采⽤⼏何⽅法建⽴数学模型时,⽤形状参数和属性参数描述图形的⼀种⽅法,形状参数可以是线段的起点、终点等⼏何参数,属性参数则包括线段的颜⾊、线型、宽度等⾮⼏何参数。
⼀般将⽤参数法描述的图形仍然称为图形。
4.名词解释:光栅、荫罩板、三枪三束、扫描线的含义。
答:电⼦束从左⾄右、从上⾄下有规律的周期运动,在屏幕上留下了⼀条条扫描线,这些扫描线形成了光栅。
荫罩板是凿有许多⼩孔的热膨胀率很低的钢板。
为了显⽰彩⾊图像,需要配备彩⾊光栅扫描显⽰器。
计算机图形学习题参考答案(完整版)
计算机图形学习题参考答案第1章绪论1、第一届ACM SIGGRAPH会议是哪一年在哪里召开的?解:1974年,在Colorado大学召开了第一届SIGGRAPH年会。
2、计算机图形学之父是谁?解:Sutherland3、列举一些计算机图形学的应用领域(至少5个)。
解:计算机辅助设计、图示图形学、计算机艺术、娱乐、教学与培训、可视化、图像处理、图形用户界面等。
4、简要介绍计算机图形学的研究内容。
解:(1)图形的输入。
如何开发和利用图形输入设备及相关软件把图形输入到计算机中,以便进行各种处理。
(2)图形的处理。
包括对图形进行变换(如几何变换、投影变换)和运算(如图形的并、交、差运算)等处理。
(3)图形的生成和输出。
如何将图形的特定表示形式转换成图形输出系统便于接受的表示形式,并将图形在显示器或打印机等输出设备上输出。
5、简要说明计算机图形学与相关学科的关系。
解:与计算机图形学密切相关的学科主要有图像处理、计算几何、计算机视觉和模式识别等。
计算机图形学着重讨论怎样将数据模型变成数字图像。
图像处理着重研究图像的压缩存储和去除噪音等问题。
模式识别重点讨论如何从图像中提取数据和模型。
计算几何着重研究数据模型的建立、存储和管理。
随着技术的发展和应用的深入,这些学科的界限变得模糊起来,各学科相互渗透、融合。
一个较完善的应用系统通常综合利用了各个学科的技术。
6、简要介绍几种计算机图形学的相关开发技术。
解:(1)OpenGL。
OpenGL是一套三维图形处理库,也是该领域事实上的工业标准。
OpenGL独立于硬件、操作系统和窗口系统,能运行于不同操作系统的各种计算机,并能在网络环境下以客户/服务器模式工作,是专业图形处理、科学计算等高端应用领域的标准图形库。
以OpenGL为基础开发的应用程序可以十分方便地在各种平台间移植;OpenGL与C/C++紧密接合,便于实现图形的相关算法,并可保证算法的正确性和可靠性;OpenGL使用简便,效率高。
计算机图形学作业-Display-答案
计算机图形学作业I一.判断题1.齐次坐标提供了坐标系变换的有效方法,但仍然无法表示无穷远的点;(×)2.若要对某点进行比例、旋转变换,首先需要将坐标原点平移至该点,在新的坐标系下做比例或旋转变换,然后在将原点平移回去;(√)3. 相似变换是刚体变换加上等比缩放变换;(√)4. 保距变换是刚体变换加上镜面反射;(√)5. 射影变换保持直线性,但不保持平行性。
(√)二、填空题1.透视投影的视见体为截头四棱锥形状;平行投影的视见体为长方体形状。
2.字符的图形表示可以分为矢量表示和点阵表示两种形式。
3.仿射变换保持直线的平行性4.刚体变换保持长度5.保角变换保持向量的角度三、单项选择题1. 分辨率为1024×1024的显示器各需要多少字节位平面数为24的帧缓存?( D)A. 512KB;B. 1MB;C. 2MB;D. 3MB ;2. 在透视投影中,主灭点的最多个数是( C )A 1;B 2;C 3;D 43. 以下关于图形变换的论述不正确的是( B )A. 平移变换不改变图形大小和形状,只改变图形位置;B. 拓扑关系不变的几何变换不改变图形的连接关系和平行关系;C.旋转变换后各图形部分间的线性关系和角度关系不变,变换后直线的长度不变D.错切变换虽然可引起图形角度的改变,但不会发生图形畸变;4.使用下列二维图形变换矩阵:将产生变换的结果为( D )A. 图形放大2倍;B. 图形放大2倍,同时沿X、Y1个绘图单位;C.沿X坐标轴方向各移动2个绘图单位;D.沿X坐标轴方向放大2倍,同时沿X、Y坐标轴方向各平移1个绘图单位。
5. 下列有关投影的叙述语句中,正确的论述为(B )A. 透视投影具有近小远大的特点;B. 平行投影的投影中心到投影面距离是无限的;C. 透视投影变换中,一组平行于投影面的线的投影产生一个灭点;T =D. 灭点可以看作是无限远处的一个点在投影面上的投影。
6. 下列有关三维物体线框模型表示法的叙述语句中,错误的论述为(A)A. 物体线框模型由定义物体边界的直线和曲线组成,并存在面的信息;B. 三维物体线框模型可能出现二义性;C. 三维物体线框模型所构造出的形体不一定总是简单且有效的;D. 线框模型不能正确表示曲面信息。
计算机图形学 作业
作业一1.什么是图形?什么是计算机图形学?计算机图形学研究的对象是什么学研究的对象是什么?2.图形有哪两种基本属性?它的显示方法有哪些?表示方法又有哪些?3.图形系统的主要功能有哪些?它对计算机硬件有什么基本要求?4.结合CRT显示器的工作原理,叙述其基本组成。
5.简述光栅扫描显示器的工作原理。
6.液晶显示器主要有哪几部分组成?它是如何工作的?作业二1.什么是交互式图形系统?为什么目前的图形系统多为交互式图形系统?2.交互式图形系统的软硬件分别由哪些部分组成?3.常用的交互式绘图技术有哪些?试对它们进行比较,并且说出你认为哪一种交互技术最容易应用。
交式图形系统的界面设计常要考虑哪方面4.交互式图形系统的界面设计通常要考虑哪些方面的内容?5.常用的交互工作方式有哪些?6.交互式图形系统用户接口的设计原则有哪些?7.什么是OpenGL?它的库文件包括哪些?作业三1.已知起点A(5,2)和终点B(10,18),用对称DDA法在A和B之间生成段直线。
在A和B之间生成一段直线。
2.描述Bresenham直线生成算法,并导出其在第一象限内的递推公式。
3.用逐点比较法生成圆心在(1,1),半径为10的圆。
简述编码裁剪法的作程4.简述编码裁剪法的工作过程。
作业四1.什么是光?简单描述可见光在整个电磁波波谱中的位置。
2.什么是颜色?从能量分布的角度解释白光、单色光和彩色光。
3.颜色的三要素是什么?哪个颜色模型使用这三个要素来描述颜色?4.什么是颜色的加色混合和减色混合?一般用哪两种颜色模型来描述这两种混合方式?作业五1.曲线和曲面有几种表示方式?用参数来表示曲线和曲面有什么优点和曲面有什么优点?2.什么是曲线的插值、逼近和光顺?平面曲线的光顺条件是什么?3.导出Hermit矩阵。
什么是投影描述投影的分类及相关概念4.什么是投影?描述投影的分类及相关概念。
计算机图形学作业
2. 已知:
b0 3 4
b1
6
8
b2 10 5
定义一条贝齐尔曲线
P(t), t [0,t]
用德卡斯特里奥算法求出点P(1/4),并 画出其图解过程。
第五章曲线曲面练习题-2
3.证明二次贝齐尔曲线 p(t),t [0,1] 上到弦线 (首末端点连线)的最大距离点的参数必 为t=1/2,且最大距离为内顶点至弦线距 离之半。
第三章 思考题
1.弄清楚直线的Bresenham算法 2.P28:4 3.弄清楚扫描线算法和对应的活化边表算法
第三章 练习题
1. 推出多边形逼近圆的递推算法; 2. 设起点坐标为(r,0),到x=y结束,推出圆的
Bresenham算法。 3. 用 Bresenham 直 线 算 法 计 算 从 ( 1,0 ) 到
第四章 裁剪与变换上机编程题
1. 参考P78图1和图2图形,自己设计一个 图案,以几何变换的方法编程实现。
2. 自己设计一个物体,编程上机画出其 三视图和轴测图或透视图。
第五章 曲线曲面思考题-1
1. 绝对矢量始点位于坐标系原点,能否用矢 量运算诸法则运算? 2. 为什么在理论分析时及表示曲线曲面和点 时总是把矢量当成一个整体而不考虑其组成 分量,而具体计算及程序实现时又要在各坐 标分量上分别进行? 3. 什么形式成为形状描述的标准形式,与其 他的显函数,隐式方程比较有哪些优点?有 无缺点?是否满足形状描述的所有要求?
计算机图形学作业
第一、二章练习题
P12:1、2 1. 如果使用每种基色占10位(bit)的直接编
码方式(不用查色表)表示RGB的值,每 一像素有多少种可能的颜色?
2. 如果分辨率为1024×768,24位真彩的直 接编码方式,至少需要多大的缓冲存储器 容量(MB)?
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《计算机图形学》实验报告
二
维
几
何
变
换
专业:
班级:1002
学号:
姓名:
完成日期:2012.10.20
1.实验目的
(1) 掌握二维平移、比例、旋转几何变换矩阵。
(2)掌握矩阵乘法的编程实现。
(3)掌握相对于任意参考点的比例变换和旋转变换。
(4)掌握定时器的使用方法。
2.实验要求
(1)设计包含齐次坐标的二维点类CP2。
(2)设计二维几何变换类。
平移变换矩阵,比例变换矩阵和旋转变换矩阵。
(3)设计双缓冲技术。
(4)生成正多边形顶点。
(5)绘制几何变换图形。
(6)使用定时器动态更新图形。
(7)平移变换(x,y) ===>(-50,50)之间往复变换。
旋转变换绕中心旋转10/帧,比例变换[0.5,2]0.01/帧之间往复变换。
3.程序代码
CTestView::CTestView()
{
// TODO: add construction code here
directionX=1; directionY=1; directionS=1;
R = 30;
translateX=1; translateY=1;
rotate = 1; scale = 1;
}
CTestView::~CTestView()
{
}
void CTestView::DoubleBuffer()
{
int flag=0;
CDC * pDC = GetDC();
CRect rect;
if(scale>2)
directionS=-1;
if(scale<-2)
directionS=1;
GetClientRect(&rect);
pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetWindowExt(rect.Width(),rect.Height());
pDC->SetViewportExt(rect.Width(),-rect.Height());
pDC->SetViewportOrg(rect.Width()/2,rect.Height()/2);
CDC MemDC;
CBitmap NewBitmap,*pOldBitmap;
MemDC.CreateCompatibleDC(pDC);
NewBitmap.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height() );
pOldBitmap=MemDC.SelectObject(&NewBitmap);
MemDC.SetMapMode(MM_ANISOTROPIC);
MemDC.SetWindowExt(rect.Width(), rect.Height());
MemDC.SetViewportExt(rect.Width(),-rect.Height());
MemDC.SetViewportOrg(rect.Width()/2,rect.Height()/2);
ReadPoint();
tran.Translate(translateX,translateY);
tran.Rotate(rotate,CP2(translateX,translateY));
tran.Scale(scale,scale,CP2(translateX,translateY));
DrawObject(&MemDC);
BorderCheck();
pDC->BitBlt(-rect.Width()/2,-rect.Height()/2,rect.Width(),rect.Height (),&MemDC,-rect.Width()/2,-rect.Height()/2,SRCCOPY);
MemDC.SelectObject(pOldBitmap);
NewBitmap.DeleteObject();
MemDC.DeleteDC();
ReleaseDC(pDC);
if(P!=NULL)
{
delete []P;
P=NULL;
}
}
void CTestView::ReadPoint()
{
double Dtheta=2*PI/degree;
P=new CP2[degree+1];
//static int x = 0;
// static int y = 0;
for(int i=0;i<degree;i++)
{
P[i].x=R*cos(i*Dtheta) ;
P[i].y=R*sin(i*Dtheta) ;
}
P[degree].x = 0;
P[degree].y = 0;
tran.SetMat(P,degree+1);
}
void CTestView::DrawObject(CDC * pDC)
{
// CLine *line=new CLine;
CPen pen(PS_SOLID,1,RGB(255,0,0));
pDC->SelectObject(&pen);
for(int i=0;i<degree;i++)
{
pDC->MoveTo( ROUND(P[degree].x),ROUND(P[degree].y));
pDC->LineTo( ROUND(P[i].x),ROUND(P[i].y));
pDC->LineTo(ROUND(P[(i+1)%degree].x),ROUND(P[(i+1)%degre e].y));
}
pen.DeleteObject();
// delete line;
}
void CTestView::OnDraw(CDC* pDC)
{
CTestDoc* pDoc = GetDocument();
ASSERT_V ALID(pDoc);
// TODO: add draw code for native data here
SetTimer(1,100,NULL);
}
BOOL CTestView::OnPreparePrinting(CPrintInfo* pInfo)
// default preparation
return DoPreparePrinting(pInfo);
}
void CTestView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default degree = 8;
translateX += 1*directionX;
translateY += 2*directionY;
rotate += 2;
scale+=0.5*directionS;
DoubleBuffer();
CView::OnTimer(nIDEvent);
}
void CTestView::BorderCheck()
{
if(P[degree].x>50)
{directionX=-1;
directionY=-1;
}
if(P[degree].x<-50)
{ directionX=1;
directionY=1;
}
}
4.运行结果。