第四章--二维图形的生成(1).ppt

第四章--二维图形的生成(1).ppt

ID:61835390

大小:841.50 KB

页数:78页

时间:2021-03-23

第四章--二维图形的生成(1).ppt_第1页
第四章--二维图形的生成(1).ppt_第2页
第四章--二维图形的生成(1).ppt_第3页
第四章--二维图形的生成(1).ppt_第4页
第四章--二维图形的生成(1).ppt_第5页
资源描述:

《第四章--二维图形的生成(1).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四章、二维图形的生成和变换4.1、直线段的扫描转换算法4.1.1、DDA算法4.1.2、中点画线法4.1.3、Bresenham画线算法4.2、圆弧、椭圆弧扫描转换算法4.2.1、中点算法4.2.2、Bresenham画圆算法4.2.3、生成圆弧的正负法8/18/20211西安工程大学计算机图形学图形的扫描转换(光栅化):确定一个像素集合,用于显示一个图形的过程。步骤如下:1、确定有关像素2、用图形的颜色或其它属性,对像素进行写操作。对一维图形,不考虑线宽,则用一个像素宽的直线来显示图形。二维图形的光栅化,即区域的填充:确定像素集,填色或图案。任何图形的光栅化,

2、必须显示在一个窗口内,否则不予显示。即确定一个图形的哪些部分在窗口内,哪些在窗口外,即裁剪。8/18/20212西安工程大学计算机图形学图形显示前需要:扫描转换+裁剪●裁剪---〉扫描转换:最常用,节约计算时间。●扫描转换---〉裁剪:算法简单;8/18/20213西安工程大学计算机图形学在数学上,理想的直线是没有宽度的,是由无数个在它上面的点构成的集合。直线可以向一个方向及其相反的方向无限延长。在图形学中研究的对象是直线段,它是一条具有一个Pixel或多个Pixel宽的直线段。图形显示器是由一个个排列有序的像素构成,划分的像素点越多分辨率就越高。例如640X48

3、0的显示器,分成640X480个网格,网格单元视为像素,一条线段就是由一些连续可见的像素所组成,如下图所示:4.1直线段的扫描转换算法8/18/20214西安工程大学计算机图形学由上图可知:画一条直线实际上就是根据一系列计算出来并与该直线靠近的像素绘制的。Line:P0(0,0)——P1(5,2)0143215234各行各列像素中心构成的一组虚拟网格线像素单元4.1直线段的扫描转换算法0123456701234568/18/20215西安工程大学计算机图形学直线的扫描转换:确定最佳逼近于该直线的一组象素,并且按扫描线顺序,对这些象素进行写操作。直线段是最基本的图形

4、,因此直线段生成的质量好坏与速度快慢将直接影响整个图形生成的质量和速度。三个常用算法:数值微分法(DDA)中点画线法Bresenham算法。4.1直线段的扫描转换算法8/18/20216西安工程大学计算机图形学数值微分法(DDA)假定直线的起点、终点分别为:(x0,y0),(x1,y1),且都为整数。栅格交点表示象素点位置(Xi+1,Yi+k)(Xi,Yi)●4.1直线段的扫描转换算法●●●●●8/18/20217西安工程大学计算机图形学数值微分(DDA)法基本思想已知过端点P0(x0,y0),P1(x1,y1)的直线段L:y=kx+b直线斜率为这种方法直观,但效

5、率太低,因为每一步需要一次浮点乘法和一次舍入运算。4.1直线段的扫描转换算法8/18/20218西安工程大学计算机图形学数值微分(DDA)法计算yi+1=kxi+1+b=kxi+b+kx=yi+kx当x=1;yi+1=yi+k即:当x每递增1,y递增k(即直线斜率);注意上述分析的算法仅适用于k≤1的情形。在这种情况下,x每增加1,y最多增加1。4.1直线段的扫描转换算法8/18/20219西安工程大学计算机图形学注:当时,必须把x,y位置互换,即利用递推式,y每增加1,x相应增加。所以取和中较大者为步进方向,如下图,,x为步进方向y为步进方向4.1直线

6、段的扫描转换算法8/18/202110西安工程大学计算机图形学数值微分(DDA)法增量算法:在一个迭代算法中,如果每一步的x、y值是用前一步的值加上一个增量来获得,则称为增量算法。DDA算法就是一个增量算法。4.1直线段的扫描转换算法该算法的优点是绘制实数直线效果好,误差小。缺点是实现较复杂,不利于硬件实现。该算法涉及到实数乘除法运算,y与k必须用浮点数表示,而且每一步都要对y进行四舍五入后取整。8/18/202111西安工程大学计算机图形学数值微分(DDA)法voidDDALine(intx0,inty0,intx1,inty1,intcolor)intx;f

7、loatdx,dy,y,k;dx=x1-x0,dy=y1-y0;k=dy/dx,y=y0;for(x=x0;xx1,x++)putpixel(x,int(y+0.5),color);y=y+k;4.1直线段的扫描转换算法8/18/202112西安工程大学计算机图形学012345321Line:P0(0,0)--P1(5,2)数值微分(DDA)法例:画直线段P0(0,0)--P1(5,2)k=0.4xy+k四舍五入int(y+0.5)00010.4020.8131.2141.625224.1直线段的扫描转换算法8/18/202113西安工程大学计算机图形学中

8、点画线法原

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。