《计算机图形学》练习题(答案)(共11页).doc
《《计算机图形学》练习题(答案)(共11页).doc》由会员分享,可在线阅读,更多相关《《计算机图形学》练习题(答案)(共11页).doc(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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计算端点
2、坐标(3) 比较:Cohen-Sutherland:直观方便,速度较快 多次重复计算线段与裁剪窗口边界的交点,计算量大 采用位逻辑乘,在有些高级语言中不便进行 全部舍弃的判断仅适用于那些仅在窗口的线段,不适合跨越三个区域的 线段,就不能一次做出判别Liang-Barsky:所需计算量小,更有效 可以扩展成三维裁剪算法 只能应用于矩阵窗口的情形 10. 简述Bezier曲线与B-Spline曲线的异同点,指出他们的特点和不足。11. DDA算法和Bresenham算法是两种直线生成的基本算法,试述两种算法的基本原理,并分析它们的优点和不足。(1) DDA算法:选定x2x1和y2y1中较大者作为步
3、进方向(假设x2x1较大),取该方向上的增量为一个象素单位(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)则:下一个直
4、线的点应为(xi+1,y+k) 下一个直线的光栅点为右光栅点(xi+1,yi)(y方向递增量0)或为右上光栅点(xi+1,yi+1)(y方向递增量1)(3) 优缺点:DDA算法:算法简单,实现容易 由于在循环中涉及实型数的运算,因此生成直线的速度较慢。 浮点数运算 不易硬件实现Bresenham算法:不必计算直线之斜率,因此不做除法; 不用浮点数,只用整数; 只做整数加减法和乘2运算,而乘2运算可以用硬件移位实现. 算法速度很快,并适于用硬件实现.12. 简述直线段裁剪与多边形裁剪的异同点。多边形的剪裁比直线剪裁复杂。如果按照直线剪裁算法对多边形的边作剪裁,剪裁后的多边形的边就会成为一组彼此不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机图形学 计算机 图形学 练习题 答案 11
限制150内