计算机图形学 第二章 二维基本图形的生成与二维区域的填充ppt课件.ppt

计算机图形学 第二章 二维基本图形的生成与二维区域的填充ppt课件.ppt

ID:58657675

大小:270.50 KB

页数:133页

时间:2020-10-05

计算机图形学 第二章 二维基本图形的生成与二维区域的填充ppt课件.ppt_第1页
计算机图形学 第二章 二维基本图形的生成与二维区域的填充ppt课件.ppt_第2页
计算机图形学 第二章 二维基本图形的生成与二维区域的填充ppt课件.ppt_第3页
计算机图形学 第二章 二维基本图形的生成与二维区域的填充ppt课件.ppt_第4页
计算机图形学 第二章 二维基本图形的生成与二维区域的填充ppt课件.ppt_第5页
资源描述:

《计算机图形学 第二章 二维基本图形的生成与二维区域的填充ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第二章二维基本图形的生成与区域填空重点:掌握二维图元直线、圆、区域填充、字符的生成算法。难点:理解二维图元生成的算法思想并且用C语言进行算法的实现。课时安排:授课8学时(直线、圆:3学时;区域填充:4学时;字符:1学时);上机4学时(直线、圆:2学时;区域填充:2学时)。10/1/20211第二章二维基本图形的生成与区域填空图元生成算法的要求:准确、亮度均匀、速度快。前面已经知道,矢量显示(随机扫描显示器)和光栅显示是两种完全不同的图形显示技术。10/1/20212第二章二维基本图形的生成与区域填空目前,光栅显示技术占主要地位。

2、原因是:1、光栅显示可以用颜色或图案来填充一个区域;  2、光栅显示以象素为单位进行读写和存储,可以实现对物体细节的描述;  3、图形的任意部分均可以被移动和复制。10/1/20213第二章二维基本图形的生成与区域填空在这一章里,主要介绍在光栅输出设备上,根据物体的坐标描述构造二维几何图形的方法。在光栅显示器上,象素是屏幕的最小显示单位,因此二维图形的构造就是找出最靠近所描述几何图形的那些象素,将它们置入规定的颜色并放入帧缓存。我们知道,一幅图是由点、直线、曲线、多边形填充区域以及字符串等组成。下面将讨论这些基本图元的生成技术和算法。10/1/202

3、142.1直线的扫描转换一、数学直线在数学上,理想的直线是一条由无穷多个无限小的连续的点组成。数学直线10/1/202152.1直线的扫描转换二、光栅平面显示的直线但在光栅显示平面上,我们只能用二维光栅格网上尽可能靠近这条直线的象素点的集合来表示它。每个象素具有一定的尺寸,是显示平面上可被访问的最小单位,它的坐标x和y只能是整数,也就是说相邻像素的坐标值是阶梯的而不是连续的。10/1/202162.1直线的扫描转换光栅直线10/1/202172.1直线的扫描转换三、直线的扫描转换直线的扫描转换,就是要找出显示平面上最佳逼近理想直线的那些象素的坐标值,

4、并将这些象素置成所要求的颜色。直线的扫描转换由于一幅图中可能包含成千上万条直线,所以要求绘制算法应该:1、最接近数学上的直线;10/1/202182.1直线的扫描转换2、沿着线段分布的象素应均匀不均匀的例子如下图所示,对同样长的线段,如果进行图中的扫描转换,就会因为斜率的不同,产生的象素个数不相等,这样将导致象素亮度分布不均匀。3、画线速度尽可能的快10/1/202192.1.1生成直线的DDA算法数值微分法即DDA法(DigitalDifferentialAnalyzer),是一种基于直线的微分方程来生成直线的方法一、直线DDA算法描述:设(x1,

5、y1)和(x2,y2)分别为所求直线的起点和终点坐标,由直线的微分方程得=m=直线的斜率(2-1)10/1/2021102.1.1生成直线的DDA算法可通过计算由x方向的增量△x引起y的改变来生成直线:xi+1=xi+△x(2-2)yi+1=yi+△y=yi+△x·m(2-3)也可通过计算由y方向的增量△y引起x的改变来生成直线:yi+1=yi+△y(2-4)xi+1=xi+△x=xi+△y/m(2-5)式(2-2)至(2-5)是递推的。10/1/2021112.1.1生成直线的DDA算法二、直线DDA算法思想:选定x2-x1和y2-y1中较大者作为

6、步进方向(假设x2-x1较大),取该方向上的增量为一个象素单位(△x=1),然后利用式(2-1)计算另一个方向的增量(△y=△x·m=m)。通过递推公式(2-2)至(2-5),把每次计算出的(xi+1,yi+1)经取整后送到显示器输出,则得到扫描转换后的直线。之所以取x2-x1和y2-y1中较大者作为步进方向,是考虑沿着线段分布的象素应均匀,这在下图中可看出。10/1/2021122.1.1生成直线的DDA算法另外,算法实现中还应注意直线的生成方向,以决定Δx及Δy是取正值还是负值。10/1/2021132.1.1生成直线的DDA算法三、直线DDA算

7、法实现:1、已知直线的两端点坐标:(x1,y1),(x2,y2)   2、已知画线的颜色:color   3、计算两个方向的变化量:dx=x2-x1dy=y2-y14、求出两个方向最大变化量的绝对值:               steps=max(

8、dx

9、,

10、dy

11、)10/1/2021142.1.1生成直线的DDA算法5、计算两个方向的增量(考虑了生成方向):               xin=dx/steps               yin=dy/steps 6、设置初始象素坐标:x=x1,y=y17、用循环实现直线的绘制:     for

12、(i=1;i<=steps;i++)     {putpixel(x,y,color);/*在(x,y)处,

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

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

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