《维填充图元生成》PPT课件.ppt

上传人:牧羊曲112 文档编号:5641667 上传时间:2023-08-05 格式:PPT 页数:83 大小:958.50KB
返回 下载 相关 举报
《维填充图元生成》PPT课件.ppt_第1页
第1页 / 共83页
《维填充图元生成》PPT课件.ppt_第2页
第2页 / 共83页
《维填充图元生成》PPT课件.ppt_第3页
第3页 / 共83页
《维填充图元生成》PPT课件.ppt_第4页
第4页 / 共83页
《维填充图元生成》PPT课件.ppt_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《《维填充图元生成》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《维填充图元生成》PPT课件.ppt(83页珍藏版)》请在三一办公上搜索。

1、1,第4章 二维填充图元生成,2,第4章 二维填充图元生成,4.1 多边形的扫描转换4.1.1 概述4.1.2 扫描线算法4.1.3 其它算法4.2 区域填充4.2.1 简单种子填充4.2.2 扫描线种子填充4.3 图案填充4.4 字符,3,第4章 二维填充图元生成,二维填充图元用颜色或图案填充一个二维区域(由封闭的轮廓线包围)。轮廓线通常是多边形。如果是曲线的话:求出边界像素区域填充;可以采用直线段逼近多边形的扫描转换。,4,第4章 二维填充图元生成,多边形的两种表示方法:,顶点表示(多边形)用多边形顶点的序列来刻划多边形。直观、几何意义强、占内存少、易于几何变换;不能直接用于光栅系统显示。

2、,点阵表示(区域)用象素的集合(边界/内部)来刻画多边形。失去了许多重要的几何信息;便于光栅系统显示。,5,第4章 二维填充图元生成,多边形分类:,6,第4章 二维填充图元生成,4.1 多边形的扫描转换4.1.1 概述4.1.2 扫描线算法4.1.3 其它算法4.2 区域填充4.2.1 简单种子填充4.2.2 扫描线种子填充4.3 图案填充4.4 字符,7,4.1.1 概述多边形的扫描转换,多边形的扫描转换:把多边形的顶点表示转换为点阵表示。也就是从多边形的给定边界出发,求出位于其内部的各个象素,并给帧缓冲器内对应元素设置相应的灰度,通常称这种转换为多边形的扫描转换。方法:逐点判断法、扫描线算

3、法、边缘填充法、栅栏填充法、边界标志法,8,1.扫描转换矩形,设矩形的四条边分另为xmin,xmax,ymin,ymax。只要填充从ymin到ymax的每条扫描线上位于xmin和xmax之间的象素。,void FillRectangle(Rectangle*rect,int color)int x,y;for(y=rect-ymin;y ymax;y+)for(x=rect-xmin;x xmax;x+)SetPixel(x,y,color);/*end of FillRectangle()*/,9,1.扫描转换矩形,矩形也是多边形,那么为什么要单独处理矩形?扫描转换多边形的算法复杂,而矩形的

4、应用非常多(窗口),所以对其单独处理以提高效率。共享边界将会被重绘两次,如何处理?,原则:左、下边的象素属于矩形,而右、上边的象素不属于矩形。左闭右开,下闭上开。边界像素重绘问题;填充扩大化问题。,10,1.扫描转换矩形,考虑填充从BL(x,y)到TR(x+5,y+5)的矩形。,void FillRectangle(Rectangle*rect,int color)int x,y;for(y=rect-ymin;y ymax;y+)for(x=rect-xmin;x xmax;x+)SetPixel(x,y,color);/*end of FillRectangle()*/,11,1.扫描转换

5、矩形,Area=6*6=36 pixels,Area=5*5=25 pixels,矩形面积为:6*636 pixels矩形实际面积应为:(x+5)-x*(y+5)-y25 pixels采用左闭右开,下闭上开的原则对边界象素进行处理可保证矩形的面积不被扩大。对FillRectangle()进行修改。,12,1.扫描转换矩形,设矩形的四条边分另为xmin,xmax,ymin,ymax。,void FillRectangle(Rectangle*rect,int color)int x,y;for(y=rect-ymin;y ymax;y+)for(x=rect-xmin;x xmax;x+)Set

6、Pixel(x,y,color);/*end of FillRectangle()*/,13,2.逐点判断法,它是扫描转换多边形的最简单算法,即逐个判断绘图窗口内的象素是否在多边形内部。如何判断点在多边形的内外?,14,2.逐点判断法,逐点判断的算法虽然程序简单,但不可取。原因是速度太慢。主要是由于该算法割断了各象素之间的联系,孤立地考察各象素与多边形的内外关系,使得几十万甚至几百万个象素都要一一判别,每次判别又要多次求交点,花费很多时间。不适于实际使用,很少采用。,15,第4章 二维填充图元生成,4.1 多边形的扫描转换4.1.1 概述4.1.2 扫描线算法4.1.3 其它算法4.2 区域填

7、充4.2.1 简单种子填充4.2.2 扫描线种子填充4.3 图案填充4.4 字符,16,4.1.2 扫描线算法,扫描线算法是扫描转换多边形的常用算法,它充分利用了相邻像素之间的连贯性,避免了逐点判断和反复求交计算,达到了减少计算量和提高算法效率的目的。处理对象:非自交多边形(边与边之间除了顶点外无其它交点)。,17,4.1.2 扫描线算法,开发和利用相邻象素之间的连贯性是光栅图形学算法的重要技巧。扫描线算法综合利用了区域的连贯性、扫描线的连贯性和边的连贯性等三种形式的连贯性。,18,4.1.2 扫描线算法,区域的连贯性:相邻两条扫描线构成一个水平长方形区域,并被多边形的边分割为若干梯形(一类位

8、于多边形的内部;另一类在多边形的外部,且间隔排列)。只需知道该区域内任一梯形中一点关于多边形的内外关系,即可确定区域内所有梯形关于多边形的内外关系。扫描线的连贯性:区域的连贯性在一条扫描线上的反映;边的连贯性:某条边与当前扫描线相交,也可能与下一条扫描线相交。可通过与当前扫描线的交点计算与下一扫描线的交点(利用斜率)。(区域的连贯性在相邻两扫描线上的反映),19,根据扫描线的连贯性可知:一条扫描线与多边形的交点中,入点和出点之间所有点都是多边形的内部点。所以,对所有的扫描线填充入点到出点之间的点就可填充多边形。如何具体实现(如何找到入点、出点)?,4.1.2 扫描线算法原理,20,4.1.2

9、扫描线算法原理,根据区域的连贯性,分为3个步骤:(1)求出扫描线与多边形所有边的交点;(2)把这些交点按x坐标值以升序排列;(3)对排序后的交点进行奇偶配对,对每一对交点间的区域进行填充。,步骤(3)如上图:对y8的扫描线,对交点序列按x坐标升序排序得到的交点序列是(2,4,9,13),然后对交点2与4之间、9与13之间的所有象素点进行填充。求交点、排序、配对、填色,21,4.1.2 扫描线算法数据结构及实现,算法中采用较灵活的数据结构。它由边分类表ET(Edge Table)和活化边表AEL(Active Edge List)两部分组成。,求交点、排序、配对、填色利用链表:与当前扫描线相交的

10、边称为活化边(Active Edge),把它们按与扫描线交点x坐标递增的顺序存入一个链表中,称为活化边表AEL(AEL,Active Edge List)。它记录了多边形边沿扫描线的交点序列。,y=6,AEL:,e2,e5,AEL中每个对象需要存放的信息:ymax:边所交的最高扫描线;x:当前扫描线与边的交点;x:从当前扫描线到下一条扫描线之间的x增量next:指向下一对象的指针。,活化边表AEL,求交、排序、配对、填色随扫描线的递增如何更新AEL?边的加入、删除,交点的更新。,y=6,AEL:,y=7,AEL:,e2,e5,e2,e3,e4,e5,建立一个新的数据结构:边分类表ET,活化边表

11、AEL,边分类表ET(Edge Table):按扫描线i对非水平边进行分类的指针数组。下端点的y坐标值等于i的边归入第i类(在该扫描线第一次出现的边)。同一类中,各边按x值(x值相等时,按x的值)递增的顺序排列。有多少条扫描线,就设多少类。,ET中每个对象需要存放的信息:ymax:边所交的最高扫描线;x:边的下端点的x坐标;x:从当前扫描线到下一条扫描线之间的x增量(边的斜率的倒数);next:指向下一对象的指针。,边分类表ET(Edge Table):按扫描线i对非水平边进行分类的指针数组。下端点的y坐标值等于i的边归入第i类(在该扫描线第一次出现的边)。同一类中,各边按x值(x值相等时,按

12、x的值)递增的顺序排列。有多少条扫描线,就设多少类。,e2,e5,e1,e6,e3,e4,ET(桶),同一类中的边按x、x的递增顺序排列,26,4.1.2 扫描线算法数据结构及实现,算法中采用较灵活的数据结构。它由边分类表ET(Edge Table)和活化边表AEL(Active Edge List)两部分组成。ET和AEL中的基本元素称为“边”(Edge)。边的结构“Edge”由以下四个域组成:ymax:边的上端点的y坐标;x:在ET中表示边的下端点的 x坐标;在AEL中则表示边 与扫描线的交点的x坐标;x:边的斜率的倒数;next:指向下一“边”的指针。,typedef struct in

13、t ymax;float x,deltax;Edge*next;Edge;,27,4.1.2 扫描线算法几点规则,求交点、排序、配对、填色交点与多边形顶点重合时,会导致“配对”失败,如何处理?下闭上开,28,4.1.2 扫描线算法几点规则,扫描线与多边形的顶点相交时,交点的取舍(保证交点正确配对)。检查该顶点的两相邻边在扫描线的哪一侧:只要检查顶点的两条边的另外两个端点的Y值,两个Y值中大于交点Y值的个数是0,1,2,来决定取0,1,2个交点。(下闭上开),29,4.1.2 扫描线算法算法描述,建立ET,置y为ET中非空桶的最小序号;置AEL表为空,且把y桶中ET表的边加入AEL表中;whil

14、e AEL表中非空 dobegin 对AEL表中的x、x按升序排列;按照AEL表中交点前后次序,在每对奇偶交点间的x段予 以填充;计算下一条扫描线:y=y+1;if 扫描线 y=ymaxthen 从AEL表中删除这些边;对在AEL表中的其他边,计算与下一条扫描线的交点:x=x+x 按照扫描线y值把ET表中相应桶中的边加入AEL表中;endend of algorithm,e2,e5,e1,e6,e3,e4,:ET,AEL=空,y=1 AEL=,(7,1)(7,1),(4.5,2)(8.5,2),(2,3)(10,3),(2,4)(11.5,4),(2,5)(13,5),(2,6)(13,6),

15、AEL:,y=2 AEL=,y=3 AEL=,y=4 AEL=,y=5 AEL=,y=6 AEL=,算法示例,e2,e5,e1,e6,e3,e4,:ET,y=7 AEL=,(2,7)(7,7),(7,7)(13,7),(2,6)(13,6),AEL:,y=6 AEL=,y=8 AEL=,(2,8)(4.5,8),(8.5,8)(13,8),y=9 AEL=,(10,9)(13,9),算法示例,e2,e5,e1,e6,e3,e4,:ET,y=10 AEL=,(11.5,10)(13,10),AEL:,y=9 AEL=,(10,9)(13,9),y=11 AEL=空,算法示例,33,练习,写出如图

16、所示的多边形的边分类表(ET)及y=7和y=1对应的活性边表(AEL),e3,e5,e1,e2,e4,y=7,AET:,y=1,AET:,e4,e3,e1,e2,36,4.1.2 扫描线算法几点规则,求交点、排序、配对、填色还需解决的问题:交点x坐标可能是小数,如何取整?填充扩大化的问题,及边界像素的取舍问题。,37,交点的取整利用连贯性计算出的交点可能导致部分像素位于多边形之外。目的:使生成的像素尽量位于多边形之内,并且避免填充扩大化。,4.1.2 扫描线算法几点规则,38,4.1.2 扫描线算法几点规则,假定非水平边与扫描线y=e相交,交点的横坐标为x。若x为小数,即交点落于扫描线上两个相

17、邻像素之间时,规则如下:(a)交点位于左边之上(入点),向右取整;(b)交点位于右边之上(出点),向左取整;,39,4.1.2 扫描线算法几点规则,边界象素的取舍问题,避免填充扩大化。若x为整数,即交点落于像素点上(边界象素)。落在右边界的象素(出点)不予填充;“左闭右开”,40,4.1.2 扫描线算法几点规则,1.边界上的象素:“左闭右开”,将左边界的点算为内部,而将右边界的点算为外部。2.顶点:“下闭上开”,即丢弃上顶点。,扫描线交于一顶点,共享交点的两条边分另处于扫描线的两边,这时交点只取1个,如扫描线y=3,根据“下闭上开”原则,该点被填充1次。,共享交点的两条边处于扫描线的上方,这时

18、交点取2个,如扫描线y=1。,共享交点的两条边处于扫描线的下方,这时交点取0个,如扫描线y=9,无交点,不填充。,41,4.1.2 扫描线算法小结,优点:充分利用了区域的连贯性,算法的效率比逐点填充法高很多。缺点:对各种表的维持和排序开销太大,适合软件实现而不适合硬件实现。思考:多边形的水平边对算法有何影响?上述算法中交点如何实现所述规则的取舍?算法是否能处理自交多边形?,42,4.1.2 扫描线算法思考,水平边对算法有何影响?水平边对算法没有影响,可在预处理阶段去除。,43,第4章 二维填充图元生成,4.1 多边形的扫描转换4.1.1 概述4.1.2 扫描线算法4.1.3 其它算法4.2 区

19、域填充4.2.1 简单种子填充4.2.2 扫描线种子填充4.3 图案填充4.4 字符,44,4.1.3 其它算法,1.边缘填充法2.栅栏填充法3.边界标志法,45,求余运算:假定A为一个正整数(计算机中取A为n位能表示的最大整数。即,A=0 xFFFFFFFF),则M的余定义为A M,记为。求余可用异或显示模式实现:光栅图形中,如果某区域已着上值为M的颜色值,做偶数次求余运算,该区域颜色不变;而做奇数次求余运算,则该区域颜色变为值为 的颜色。这一规律应用于多边形扫描转换,就是边缘填充算法。算法基本思想:对于每条扫描线和每条多边形边的交点,将该扫描线上交点右方的所有象素取余。,1.边缘填充算法,

20、46,1.边缘填充算法以边为中心的算法,1.将绘画窗口的背景置为;2.从多边形的每一条非水平边上的象素开始向右求余。,47,1.边缘填充算法与扫描线算法的比较,适合用于具有帧缓存的图形系统。优点:算法简单,数据结构和程序结构都比扫描线法简单。缺点:对于复杂图形,每一象素可能被访问多次,输入、输出的量比扫描线填充算法大得多;要对帧缓存的大量象素反复赋值,速度较慢;并难于用图案填充。,48,2.栅栏填充算法,边缘填充算法的改进。引入栅栏,以减少填充算法重复访问象素的次数。栅栏:与扫描线垂直的直线,通常过一顶点,且把多边形分为左右二部分。基本思想:将交点与栅栏之间的象素取余。减少了象素重复访问数目,

21、但不彻底。,49,3.边界标志算法,取一个布尔变量inside来指示当前点的状态;Inside 的初始值为假,每当当前访问象素为被打上边界标志的点,就把inside取反。对未打标志的点,inside不变。没有了求交、排序等运算。,50,3.边界标志算法,也称轮廓填充算法改进的边缘填充法。1.对多边形的每一条边进行扫描转换,即对多边形边界所经过的象素作一个边界标志。2.填充:对每条与多边形相交的扫描线,按从左到右的顺序,逐个访问该扫描线上的象素。取一个布尔变量inside来指示当前点的状态:若点在多边形内,则inside为真;若点在多边形外,则inside为假。Inside 的初始值为假,每当当

22、前访问象素为被打上边界标志的点,就把inside取反。对未打标志的点,inside不变。,51,3.边界标志算法,优点:对每个象素只访问一次。不必建立、维护ET及AEL等数据结构,也没有了排序、求交等运算,适于硬件实现。用软件实现时,扫描线算法与边界标志算法的执行速度几乎相同。但由于边界标志算法不必建立维护AEL以及对它进行排序,所以边界标志算法更适合硬件实现,这时它的执行速度比扫描线算法快一至两个数量级。,52,第4章 二维填充图元生成,4.1 多边形的扫描转换4.1.1 概述4.1.2 扫描线算法4.1.3 其它算法4.2 区域填充4.2.1 简单种子填充4.2.2 扫描线种子填充4.3

23、图案填充4.4 字符,53,4.2 区域填充,多边形的两种表示方法:,顶点表示(多边形)用多边形顶点的序列来刻划多边形。直观、几何意义强、占内存少、易于几何变换;不能直接用于光栅系统显示。,点阵表示(区域)用象素的集合(边界/内部)来刻画多边形。失去了许多重要的几何信息;便于光栅系统显示。,54,4.2 区域填充,区域可采用两种表示形式:内点表示枚举区域内部的所有像素;内部的所有像素着同一个颜色;边界像素着不同的颜色。边界表示枚举出边界上所有的像素;边界上的所有像素着同一颜色;内部像素着不同的颜色。,55,4.2 区域填充,区域填充先将区域内的一点赋予指定的颜色,然后将该颜色扩展到整个区域的过

24、程。简单种子算法扫描线种子算法要求区域是“连通”的。,56,4.2 区域填充,区域填充要求区域是连通的连通性:4连通:从区域内任意一点出发,可通过上、下、左、右四个方向到达区域内的任意象素;8连通:从区域内任意一点出发,可通过上、下、左、右、左上、左下、右上、右下八个方向到达区域内的任意象素;,57,第4章 二维填充图元生成,4.1 多边形的扫描转换4.1.1 概述4.1.2 扫描线算法4.1.3 其它算法4.2 区域填充4.2.1 简单种子填充4.2.2 扫描线种子填充4.3 图案填充4.4 字符,58,4.2.1 简单种子填充算法,设G为一内点表示的区域,(x,y)为区域内一点,old_c

25、olor为G的原色。现取(x,y)为种子点对区域G进行填充:即先置像素(x,y)的颜色为new_color,然后逐步将整个区域G都置为同样的颜色。步骤如下:,种子象素入栈,当栈非空时,执行如下三步操作:(1)栈顶象素出栈;(2)将出栈象素置成new_color;(3)按左、上、右、下的顺序检查与出栈象素相邻的四个象素,若其中某个象素为old_color,则把该象素作为新的种子入栈。,59,4.2.1 简单种子填充算法,/*内点表示的4连通区域*/void FloodFill4(int x,int y,int oldColor,int newColor)if(GetPixel(x,y)=oldC

26、olor)SetPixel(x,y,newColor);FloodFill4(x-1,y,oldColor,newColor);FloodFill4(x,y+1,oldColor,newColor);FloodFill4(x+1,y,oldColor,newColor);FloodFill4(x,y-1,oldColor,newColor);/*end of FloodFill4()*/,60,种子填充算法-边界表示区域,(3,2),(2,2),(3,3),(4,2),(3,1),(2,1),(4,1),(4,2),(2,2),(1,2),(2,3),(3,3),设种子象素为S(4,3),按左

27、、上、右、下检查出栈象素四个相邻的象素,写出各象素入栈及出栈顺序。,入栈顺序:(4,3)(3,3),(4,4),(5,3),(4,2)(3,2),(5,2)(5,3),(6,2).,出栈填色顺序:(4,3)(4,2)(5,2)(6,2).,栈内象素:(3,3),(4,4),(5,3),(3,2),(5,3),练习,62,4.2.1 简单种子填充算法,/*边界表示的4连通区域*/void BoundaryFill4(int x,int y,int boundaryColor,int newColor)int color;color=GetPixel(x,y);if(color!=boundary

28、Color)/*end of BoundaryFill4()*/,63,4.2.1 简单种子填充算法,采用4向填充算法能否填充此8向连通区域?8连通区域的填充:将搜索方向改为8向。可填充8连通区域和4连通区域?,64,4.2.1 简单种子填充算法,该算法也可以填充有孔区域。优点:算法简单缺点:递归执行,效率不高,要求很大的存储空间来实现堆栈。费时费内存。改进:减少递归次数,提高效率。扫描线种子填充算法,65,第4章 二维填充图元生成,4.1 多边形的扫描转换4.1.1 概述4.1.2 扫描线算法4.1.3 其它算法4.2 区域填充4.2.1 简单种子填充4.2.2 扫描线种子填充4.3 图案填

29、充4.4 字符,66,4.2.2 扫描线种子算法原理,原理:基于种子填充算法的思想,利用扫描线的连贯性,减少递归层次。,基本过程:当给定种子点时,首先填充种子点所在的扫描线上的位于给定区域的一个区段;然后确定与这一区段相通的上下两条扫描线上位于给定区域内的区段,并依次保存下来。反复这个过程,直到填充结束。,67,4.2.2 扫描线种子算法算法描述,将种子象素压入堆栈while 堆栈非空 do begin 从堆栈中弹出一个种子象素;沿着扫描线对种子象素的左右象素进行填充,直至遇 到边界象素为止;标志区间内最左和最右象素为xleft 和xright;if在xleftxxright中检查与当前扫描线

30、相邻的上下两 条扫描线全为边界象素或全为已填充过的象素 then goto 2;在xleftxxright中标记每一个既不包含边界象素又不 包含已填充过的象素的区间;将每一区间的最右象素作为种子象素压入堆栈;endend of algorithm,68,4.2.2 扫描线种子算法算法示例,执行扫描线种子法的过程如图所示,是种子象素点S。开始时,堆栈只有一个种子象素S,先填充S所在的区段,然后将其上下扫描线未填充的各区段的最右象素1,2,3作为种子象素压入堆栈,再从堆栈中取出种子象素3,填充该区段,并将下一条扫描线未填充的区段的最右象素4压入堆栈,重复执行,直至堆栈为空时结束,整个区域填充完毕。

31、,69,4.2.2 扫描线种子算法,上述算法对于每一个待填充区段,只需压栈一次;因此,扫描线种子填充算法提高了区域填充的效率。,70,多边形扫描转换与区域填充,联系:都是光栅图形的多边形面着色。可相互转换:当用直线的扫描转换算法将多边形的边界像素求出,并给定多边形内一点为种子点时,则多边形的扫描转换转化为区域填充。若已知给定区域为多边形,可求出其顶点坐标,则区域填充转化为多边形的扫描转换。,71,多边形扫描转换与区域填充,区别:基本思想不同前者:将多边形的顶点表示转换成点阵表示,后者:只改变区域的填充颜色,没有改变表示方法。对边界的要求不同前者:只要求扫描线与多边形边界交点个数为偶数。边界可以

32、不封闭(例如对水平边的预处理)。后者:区域封闭,防止递归填充跨界。基于的条件不同前者:从边界顶点信息出发。后者:区域内种子点。,72,第4章 二维填充图元生成,4.1 多边形的扫描转换4.1.1 概述4.1.2 扫描线算法4.1.3 其它算法4.2 区域填充4.2.1 简单种子填充4.2.2 扫描线种子填充4.3 图案填充4.4 字符,73,4.3 图案填充,基本问题关键是建立区域与图像间的对应关系。方法1:建立整个绘图空间(xoy)与图像空间(uov)的1-1映射。(漫游),旋转区域,填充区域,图像(纹理),74,2.7 以图像填充区域,方法2:建立区域局部坐标空间(uov)与图像空间(uo

33、v)的1-1映射。(动画),填充区域,旋转区域,图像(纹理),75,第4章 二维填充图元生成,4.1 多边形的扫描转换4.1.1 概述4.1.2 扫描线算法4.1.3 其它算法4.2 区域填充4.2.1 简单种子填充4.2.2 扫描线种子填充4.3 图案填充4.4 字符,76,4.4 字符,字符:在屏幕上显示的字母、数字、符号、汉字等。由一个数字编码唯一标识。例如:ASCII码,GB2312-80等。为了显示输出字符,必须有相应的字库,用于存储每个字符的形状信息。点阵字符:存储量大,易于显示;矢量字符:存储量小,美观,变换方便;但需要光栅化后才能显示。,77,4.4.1 点阵字符,点阵式字符将

34、字符形状表示为一个矩形点阵,由点阵中点的不同值表达字符的形状。,1 对应 前景色0 对应 背景色,79位图常用位图:799161624,78,4.4.1 点阵字符,点阵字符的存储(点阵字符是由位图表示的,保存字符就是保存它的位图)例:1616点阵汉字:16*16=256位(32个字节)常用汉字6763个:6763*32=216416字节 16*24=384位(48字节)6763*48=324K字节使用压缩技术。点阵字符的显示:从字库中将字符的位图检索出来。将检索到的位图写入帧缓存中。,79,4.4.1 点阵字符,点阵字符的变换:表示点阵字符的是位图。对点阵字符的变换是逐像素的图象变换。当将点阵

35、字符旋转或放大时,会出现走样而难看。,以字母P为原型的一些变化,80,4.4.2 矢量字符,记录字符的笔画信息(几何信息,如字符所有端点的坐标信息及拓扑结构)而不是整个位图。占用空间少,美观,变换方便。广泛用于排版,工程绘图软件中。基本取代了点阵字符。,81,4.4.2 矢量字符,矢量字符的变换:表示矢量字符的是端点坐标,对矢量字符的变换是对端点进行变换,属于图形的几何变换。计算简单,且显示效果好。矢量字符的显示:根据给定字符的编码,在字库中检索出表示该字符的数据。取出端点坐标,对其进行适当的几何变换,再根据各端点的标志显示字符。,82,4.4.3 字符属性,字体:宋体 仿宋体 楷体 黑体 隶书字高:宋体 宋体 宋体 宋体字宽:字倾斜角:倾斜 倾斜对齐:(左对齐、中心对齐、右对齐)字色:红色、绿色、黄色,83,第4章 二维填充图元生成,结束!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号