《图形显示软件》PPT课件.ppt
《《图形显示软件》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《图形显示软件》PPT课件.ppt(50页珍藏版)》请在三一办公上搜索。
1、计算机图形显示技术,2,第十一讲 图形软件,Bresenham画线算法圆的生成算法Bresenham画圆法中点画圆法区域填充算法扫描线填充算法边界填充算法,3,图形软件 Bresenham画线算法,About BresenhamE.Jack Bresenham Professor of Computer SciencePh.D.,Stanford University,1964 MSIE,Stanford University,1960 BSEE,University of New Mexico,1959Retired from 27 years service at IBM as a Sen
2、ior Technical Staff Member in 1987.Have taught 10 years at Winthrop.Holder of five patents.,4,图形软件 Bresenham画线算法,Bresenham算法该算法由Bresenham在1965年提出,是目前使用较为广泛的一种扫描转换算法,可用于直线、圆弧等图元的扫描转换。,5,图形软件 Bresenham画线算法,Bresenham画线算法基本思想过各行各列像素中心构造一组假想的栅格按直线从起点到终点的顺序计算直线与各垂直网格线的交点,然后根据误差项的符号确定该列象素中与此交点最近的象素,6,图形软件
3、Bresenham画线算法,Bresenham画线算法设直线从起点(x1,y1)到终点(x2,y2)设直线方程为:y=kx+b 其中b=y1-k*x1,7,图形软件 Bresenham画线算法,Bresenham画线算法若直线斜率k0,1且x2x1的情况(1a象限)根据即,DDA算法的讨论有:xi+1=xi+1(1)yi+1=yi+k(2)在1a象限里,当直线光栅化时,x每次都增加1个单元:xi+1=xi+1,8,图形软件 Bresenham画线算法,Bresenham画线算法由于k不一定是整数,因此由(2)式求出的y也不一定是整数。所以要用最靠近y的整数yi来代替y假设直线上第i个像素坐标为
4、(xi,yi),那么,它的下一个点的像素点的可能位置为(xi+1,yi)或(xi+1,yi+1)。如图:,9,图形软件 Bresenham画线算法,Bresenham画线算法若直线斜率k0,1且x2x1的情况(1a象限)如上图在x=xi+1处,直线上y的值y=k(xi+1)+b该点距离点(xi+1,yi)和点(xi+1,yi+1)的距离分别为d1和d2:d1=y-yi=k(xi+1)+b-yi d2=yi+1-y=yi+1-k(xi+1)-b 因此,这两个距离的差为:d1-d2=2k(xi+1)-2yi+2b-1(1),10,图形软件 Bresenham画线算法,Bresenham画线算法根据
5、(1)式,作如下讨论分析:当d1-d20时,说明直线上的理论点距离(xi+1,yi+1)较近,因此下一个直线像素点应取(xi+1,yi+1)。当d1-d20时,说明直线上的理论点距离(xi+1,yi)较近,因此下一个直线像素点应取(xi+1,yi)。当d1-d2=0时,说明直线上的理论点距离上、下两个像素点的距离相等,因此规定取(xi+1,yi+1)作为下一个直线像素点,11,图形软件 Bresenham画线算法,Bresenham画线算法若直线斜率k0,1且x2x1的情况(1a象限)因此,利用(d1-d2)的符号就可以决定下一个像素点的选择然而含有,变量xi、yi,不利于计算。为此,我们构造
6、一个新的判别式:pi=x*(d1-d2)=2 xiy-2yix+c(2)其中:x=(x2-x1)0,因此pi与(d1-d2)符号相同;y=y2-y1;c=2y+x(2b-1),12,图形软件 Bresenham画线算法,Bresenham画线算法若直线斜率k0,1且x2x1的情况(1a象限),以i+1代 入 式(2)中的i,得:pi+1=x*(d1-d2)=2 xi+1y-2yi+1x+c(3)将式(3)减去式(2),并由xi+1=xi+1可得:pi+1=pi+2y-2x(yi+1-yi)(4)假设直线上的初始端点恰好是其像素点的坐标,则将x1,y1和b代 入 式(2)中的xi,yi可 到 p
7、i的初始值p1=2x1y-2y1x+2y+x2(y1-kx1)-1=2y-x(5),13,图形软件 Bresenham画线算法,Bresenham画线算法若直线斜率k0,1且x2x1的情况(1a象限)利用上面构造的误差判别变量,可得第1a象限内的直线Bresenham算法:,p1=2y-x xi+1=xi+1 yi+1=yi+1,pi+1=pi+2(y-x)当pi 0时 yi+1=yi,pi+1=pi+2y 当pi 0时,14,图形软件 Bresenham画线算法,Bresenham画线算法若直线斜率k0,1且x2x1的情况(1a象限)从算法可以看出,第i+1步的判别变量pi+1仅与第i步的判
8、别变量pi、直线的两个端点分量差x、y有关,只用整数相加和乘2运算,没有四舍五 入处理,而乘2可利用左移一位来实现因此该算法速度快且易于硬件实现,15,图形软件 Bresenham画线算法,Bresenham画线算法描述若直线斜率k0,1且x2x1的情况(1a象限),1、输入两端点(x1,y1),(x2,y2),并以第一点作为起始点 2、分别计算x=x2-x1;y=y2-y1;计算误差初值p1=2 y-x;i=1;3、求直线的下一点位置:xi+1=xi+1;if pi 0 则 yi+1=yi+1;否则 yi+1=yi;,16,图形软件 Bresenham画线算法,Bresenham画线算法描述
9、若直线斜率k0,1且x2x1的情况(1a象限),4、画点(xi+1,yi+1);5、求下一个误差pi+1;if pi 0 则 pi+1=pi+2y-2x;否则 pi+1=pi+2y;6、i=i+1;if ix+1则转3;否则end,17,图形软件 Bresenham画线算法,Bresenham画线算法现在讨论如何让该算法实现任何方向线段的绘制如图所示,线段的方向可分为8种,从原点出发射向8个区当直线斜率的绝对值大于1时,让y坐标每次增加1,再用 Bresenham的误差判别式确定 x坐标是否需要增加1。,18,图形软件 Bresenham画线算法,Bresenham画线算法 如果能充分利用xy
10、 平面各种八分和四分区域间的对称性就可减少运算量。,19,图形软件 Bresenham画线算法,Bresenham画线算法(FLASH演示)例:分析从(0,0)到(5,2)的直线段,原始直线,Bresenham画出直线,20,图形软件 圆的生成算法,给出圆心坐标(xc,yc)和半径r,逐点画出一个圆周的公式有下列两种:1.直角坐标法由上式导出:,直角坐标法当xxc从r到r作加1递增时,就可以求出对应的圆周点的y坐标 但由于有乘方和平方根运算,且都是浮点运算,算法效率不高。同时,这样求出的圆周上的点是不均匀的xxc接近R时,由于圆的斜率趋向于无穷大,使得圆周上有较大的间隙,21,图形软件 圆的生
11、成算法,22,图形软件 圆的生成算法,极坐标法假设圆周上一点(x,y)处的半径与x轴的夹角为,则圆的极坐标方程为:x=xc+r cos y=yc+r sin利用圆周上点的对称性,我们可求出圆上各点,此时自变量的取值范围是0,45度,以固定角度为步长来变化,可得到沿圆周等距离分布的一系列光点,但运算量大,也不被采用。,A,B,极坐标法对称性,(x,y),(y,x),(y,-x),(x,-y),(-x,y),(-y,x),(-y,-x),(-x,-y),45,23,图形软件 圆的生成算法,Bresenham画圆算法与Bresenham直线生成算法一样,其基本思想:利用判别变量来判断选择最近的像素,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图形显示软件 图形 显示 软件 PPT 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5484589.html