《计算机图形学》练习题(答案)_第1页
《计算机图形学》练习题(答案)_第2页
《计算机图形学》练习题(答案)_第3页
《计算机图形学》练习题(答案)_第4页
《计算机图形学》练习题(答案)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机图形学练习题1直线扫描转换的Bresenham算法(1) 请写出生成其斜率介于0和1之间的直线的Bresenham算法步骤。(2) 设一直线段的起点和终点坐标分别为(1,1)和(8,5),请用Bresenham算法生成此直线段,确定所有要绘制象素坐标。(1)输入线段的两个端点,并将左端点存储在(x0,y0)中 将(x0,y0)装入帧缓存,画出第一个点 计算常量x, y, 2y, and 2y-2x,并得到决策参数的第一个值: p0 = 2y - x 从k=0开始,在沿线路径的每个xk处,进行下列检测: 如果pk u1,则线段是可见的第四步:利用u1和u2计算端点坐标(3) 比较:Cohe

2、n-Sutherland:直观方便,速度较快 多次重复计算线段与裁剪窗口边界的交点,计算量大 采用位逻辑乘,在有些高级语言中不便进行 全部舍弃的判断仅适用于那些仅在窗口的线段,不适合跨越三个区域的 线段,就不能一次做出判别Liang-Barsky:所需计算量小,更有效 可以扩展成三维裁剪算法 只能应用于矩阵窗口的情形 10. 简述Bezier曲线与B-Spline曲线的异同点,指出他们的特点和不足。11. DDA算法和Bresenham算法是两种直线生成的基本算法,试述两种算法的基本原理,并分析它们的优点和不足。(1) DDA算法:选定x2x1和y2y1中较大者作为步进方向(假设x2x1较大)

3、,取该方向上的增量为一个象素单位(x=1),利用式(21)计算另一个方向的增量(y=xm=m)。通过递推公式(22)至(25),把每次计算出的(xi+1,yi+1)经取整后送到显示器输出,则得到扫描转换后的直线。之所以取x2x1和y2y1中较大者作为步进方向,是考虑沿着线段分布的象素应均匀,这在下图中可看出。另外,算法实现中还应注意直线的生成方向,以决定x及y是取正值还是负值。(2) Bresenham算法:假定直线斜率k在01之间。此时,只需考虑x方向每次递增1个单位,决定y方向每次递增0或1。 设:直线当前点为(xi,y)直线当前光栅点为(xi,yi)则:下一个直线的点应为(xi+1,y+

4、k) 下一个直线的光栅点为右光栅点(xi+1,yi)(y方向递增量0)或为右上光栅点(xi+1,yi+1)(y方向递增量1)(3) 优缺点:DDA算法:算法简单,实现容易 由于在循环中涉及实型数的运算,因此生成直线的速度较慢。 浮点数运算 不易硬件实现Bresenham算法:不必计算直线之斜率,因此不做除法; 不用浮点数,只用整数; 只做整数加减法和乘2运算,而乘2运算可以用硬件移位实现. 算法速度很快,并适于用硬件实现.12. 简述直线段裁剪与多边形裁剪的异同点。多边形的剪裁比直线剪裁复杂。如果按照直线剪裁算法对多边形的边作剪裁,剪裁后的多边形的边就会成为一组彼此不连贯的折线,从而给填色带来

5、困难。多边形剪裁算法的关键在于,通过剪裁,不仅要保持窗口内多边形的边界部分,而且要将窗框的有关部分按一定次序插入多边形的保留边界之间,从而使剪裁后的多边形的边仍然保持封闭状态,以便填色算法得以正确实现13. 在计算机辅助设计与图形学中,样条曲线通常采用3次多项式参数表示,请说明理由。14. 图形学中消隐算法有两大类,z缓冲器(z-buffer)算法属于哪一类?请阐述它的基本原理和特点。(1)属于图像空间消隐(2)基本原理:Z缓冲器中每个单元的值是对应象素点所反映对象的z坐标值。Z缓冲器中每个单元的初值取成z的极小值,帧缓冲器每个单元的初值可放对应背景颜色的值。图形消隐的过程就是给帧缓冲器和Z缓

6、冲器中相应单元填值的过程。在把显示对象的每个面上每一点的属性(颜色或灰度)值填入帧缓冲器相应单元前,要把这点的z坐标值和z缓冲器中相应单元的值进行比较。只有前者大于后者时才改变帧缓冲器的那一单元的值,同时z缓冲器中相应单元的值也要改成这点的z坐标值。如果这点的z坐标值小于z缓冲器中的值,则说明对应象素已经显示了对象上一个点的属性,该点要比考虑的点更接近观察点。对显示对象的每个面上的每个点都做了上述处理后,便可得到消除了隐藏面的图(3)特点:优点:(1) 算法复杂度(O(nN):对于给定的图像空间,N是固定的,所以算法复杂度只会随着场 景的复杂度线性地增加(2) 无须排序:场景中的物体是按任意顺

7、序写入帧缓冲器和z缓冲器的,无须对物体进行 排序,从而节省了排序的时间(3)适合于任何几何物体:能够计算与直线交点(4)适合于并行实现(硬件加速)不足:(1)z缓冲器需要占用大量的存储单元:一个大规模复杂场景中:深度范围可能为106,一个像素需要24bit来存储其深度信息。 如果显示分辨率为12801024,那么深度缓冲器需要4MB存储空间(2)深度的采样与量化带来走样现象(3)难以处理透明物体解决存储问题:逐区域进行z缓冲器消隐(A-Buffer method: accumulation buffer)16. OpenGL库函数由哪几部分组成,请简单说说各部分的分工。(1)OpenGL核心库

8、核心库包含有115个函数,函数名的前缀为gl。这部分函数用于常规的、核心的图形处理。(2)OpenGL实用库TheOpenGLUtilityLibrary(GLU)包含有43个函数,函数名的前缀为glu。OpenGL提供了强大的但是为数不多的绘图命令,所有较复杂的绘图都必须从点。线、面开始。Glu为了减轻繁重的编程工作,封装了OpenGL函数,Glu函数通过调用核心库的函数,为开发者提供相对简单的用法,实现一些较为复杂的操作。(3)OpenGL辅助库包含有31个函数,函数名前缀为aux。这部分函数提供窗口管理、输入输出处理以及绘制一些简单三维物体。(4)OpenGL工具库OpenGLUtilityTool

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论