- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四讲 区域填充
本讲难点 多边形扫描转换算法:边表、活动边表 扫描线种子填充算法的基本思想 区域连通方式对填充结果的影响 扫描线种子填充算法 基本思想:在任意不间断的区间中只取一个像素(不间断区间指一条扫描线上的一组相邻元素),填充当前扫描线上的该段区间,然后确定与这一段相邻的上下两条扫描线位于区域内的区段,并依次把它们保存起来,反复进行这个过程,指导所有保存的每个区段都填充完毕。 第五节 图形模式下的文本 字符 字符指数字、字母、汉字等符号。 计算机中字符由一个数字编码唯一标识。 国际上最流行的字符集:“美国信息交换用标准代码集”,简称ASCII码。它是用7位二进制数进行编码表示128个字符;包括字母、标点、运算符以及一些特殊符号。 汉字编码的国家标准字符集:GB2312-80。该字符集分为94个区,94个位,每个符号由一个区码和一个位码共同标识。区码和位码各用一个字节表示。 为了能够区分ASCII码与汉字编码,采用字节的最高位来标识:最高位为0表示ASCII码;最高位为1表示表示汉字编码。 点阵字符:每个字符由一个位图表示,位图中每一位对应一个屏幕像素,若该位为1表示字符的笔画经过此位,对应于此位的像素应置为字符颜色。该位为0表示字符的笔画不经过此位,对应于此位的像素应置为背景颜色。 在实际应用中,有多种字体(如宋体、楷体等),每种字体又有多种大小型号,因此字库的存储空间是很庞大的。解决这个问题一般采用压缩技术。 点阵字符的显示分为两步。首先从字库中将它的位图检索出来。然后将检索到的位图写到帧缓冲器中。 矢量字符:记录字符的笔画信息,而不是整个位图,具有存储空间小,美观、变换方便等优点。对于字符的旋转、缩放等变换, 点阵字符的变换需要对表示字符位图中的每一象素进行; 矢量字符的变换只要对其笔画端点进行变换就可以了。矢量字符的显示也分为两步。 显示:首先从字库中将它的字符信息。然后取出端点坐标,对其进行适当的几何变换,再根据各端点的标志显示出字符。 点阵字符 点阵字库中的位图表示 矢量轮廓字符 字符属性 字体 宋体 仿宋体 楷体 黑体 隶书 字高 宋体 宋体 宋体 宋体 字宽 字倾斜角 倾斜 倾斜 对齐 (左对齐、中心对齐、右对齐) 字色 红色、绿色、蓝色 特点: 点阵字符:存储量大,易于显示 矢量字符:存储量小,美观,变换方便; 但需要光栅化后才能显示。 * * 区域填充是指在一个有界区域内填充某些颜色或图案。 区域填充有: (1)多边形扫描线填充算法 (2)边缘填充算法 (3)种子填充算法 各算法的前提条件不同 第四讲 区域填充 本讲重点 什么是区域填充 多边形扫描转换算法思想 区域连通 几种常用的种子填充算法 多边形分为凸多边形、凹多边形、含内环的多边形。 4.1多边形的扫描转换 多边形的表示方法 顶点表示 点阵表示 顶点表示:用多边形顶点的序列来刻划多边形。直观、几何意义强、占内存少;不能直接用于面着色。 点阵表示:用位于多边形内的象素的集合来刻划多边形。失去了许多重要的几何信息;便于运用帧缓冲存储器表示图形,易于面着色。 4.1多边形的扫描转换 多边形的扫描转换:把多边形的顶点表示转换为点阵表示,也就是从多边形的给定边界出发,求出位于其内部的各个象素,并给帧缓冲器内的各个对应元素设置相应的灰度和颜色,通常称这种转换为多边形的扫描转换。 两种方法:扫描线算法;边界标志法。 思想:按扫描线顺序,计算扫描线与多边形的相交区间,再用要求的颜色或图案显示这些区间像素。 条件:需提供多边形各顶点的坐标及填充色或图案 1. 多边形扫描线算法 扫描线算法 扫描线算法 目标:利用相邻像素之间的连贯性,提高算法效率 处理对象:非自交多边形 (边与边之间除了顶点外无其它交点) 算法首先要求出扫描线与边界的交点 已知扫描线yi与AB边的交点是(xi,yi)则: (1)?????? 边的相关性及边记录 yi+1=yi+1, xi+1=xi+1/m m是这条边的斜率 m=1/dx 设ax+by+c=0 (1) 则 斜率m=-b/a 由(1)有 xi+1=-1/a(byi+1+c) 同时 yi+1=yi+1 则 xi+1=-1/a(b(yi+1)+c)=-1/a(byi +c)-b/a =xi+(-b/a)= xi+1/m 因此,利用这种边的相关性,我们不需算出边线与各扫描线的全部交点,只需以边为单位,对每条边建立一个边记录即可,其内容如下(P35): 边记录 ymax xi 1/m next (1)?????? 边的相关性及边记录 当扫描线与多边形
文档评论(0)