版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、边缘填充算法,思路:利用求余运算代替交点排序、配对、构造填充区间。 原理:象素点颜色值经过偶数次求余运算后保持不变,经过奇数次求余运算后变为其余数 算法: 以扫描线为中心的边缘填充算法 以边为中心的边缘填充算法,基本思想:对于每一条扫描线和每条多边形边的交点 (x1,y1),将该扫描线上交点右方的所有象素取补.对多边形的每条边做此处理,多边形的顺序随意. 该算法的优点是简单,缺点是对复杂图形,每一象素可能被访问多次,输入输出的量比较大.,边缘填充算法,以扫描线为中心的边缘填充算法,基本思想:对于每一条扫描线和每条多边形边的交 点(x1,y1),将该扫描线上交点右方的所 有象素取补.对多边形的每
2、条边做此处理, 多边形的顺序随意.,将当前扫描线上的所有象素着上指定颜色的补色,以扫描线为中心的边缘填充算法,以扫描线为中心的边缘填充算法,以扫描线为中心的边缘填充算法,以扫描线为中心的边缘填充算法,以扫描线为中心的边缘填充算法,以扫描线为中心的边缘填充算法,以扫描线为中心的边缘填充算法,以扫描线为中心的边缘填充算法,以扫描线为中心的边缘填充算法,将当前扫描线上的所有象素着上指定颜色的补色,以扫描线为中心的边缘填充算法,将当前扫描线上的所有象素着上指定颜色的补色,以扫描线为中心的边缘填充算法,以扫描线为中心的边缘填充算法,以扫描线为中心的边缘填充算法,以扫描线为中心的边缘填充算法,以扫描线为中
3、心的边缘填充算法,以扫描线为中心的边缘填充算法,以扫描线为中心的边缘填充算法,对各条扫描线循环上述处理过程。,以边为中心的边缘填充算法,原始多边形,以边为中心的边缘填充算法,初始化:将绘图窗口的背景色置为多边形颜色的补色,以边为中心的边缘填充算法,对非水平边上的每个象素点向右求余,以边为中心的边缘填充算法,以边为中心的边缘填充算法,以边为中心的边缘填充算法,该算法的优点是简单,缺点是对复杂图形,每一象素可能被访问多次,输入输出的量比较大. 栅栏填充算法 基本思想:对于每个扫描线与多边形边的交点,仅将交点与栅栏之间的象素取补.,边缘填充算法特点,栅栏填充算法,将当前扫描线上的所有象素着上指定颜色
4、的补色,栅栏填充算法,将当前扫描线上的所有象素着上指定颜色的补色,栅栏填充算法,将当前扫描线上的所有象素着上指定颜色的补色,栅栏填充算法,边标志算法进一步改进了栅栏算法,使得算法对每个象素仅访问一次. 边标志算法分两步进行: 对多边形边界上的象素打上边标志; 填充.,边标志算法,扫描线算法:对每条扫描线,首先计算它与扇形区域边界的交点,再把配对交点之间的像素用指定颜色填充。,Filling Ellipse Arcs,区域(种子)填充是指先将区域内的一点(种子点)赋予给定颜色,然后将颜色扩充到整个区域内的过程(染色过程). 区域:已经表示成点阵形式的象素集合,具有相同颜色.,区域填充(种子填充算
5、法),区域的两种表示:内点表示、边界表示. 边界表示:给位于边界上的所有象素着色,而区 域内不着色.,区域的表示,内点表示:给区域内所有象素都着上同一种颜色 (特征值),边界上pixel不着色.,要求: 区域具有一定的连通性:4连通或8连通 4连通区域:取区域内任意两点,在该区域内(不能通过区域外的点),若从其中一点出发,通过上、下、左、右 四种运动可到达另一点时,则称该区域为4连通区域.,区域连通性(1),4连通运动方向,8连通运动方向,区域连通性(2),区域连通性(3),允许从4个方向搜索下一个象素的填充算法称为是四向填充算法,允许从8个方向搜索下一个象素的填充算法称为是8向填充算法,算法
6、思想: 设G为一内点表示的区域,(x,y)是G内一点,以(x,y)为种子点,先将(x,y)置为newcolor,然后对(x,y)的4(或8)领域进行递归处理,逐步将整个区域G置为newcolor.,(1)递归算法,递归填充算法,初始化:种子象素入栈 第一步:栈顶象素出栈,作为种子点; 第二步:种子点被置为填充色; 第三步:按照上、下、左、右顺序检查与种子点相邻的象素:若非边界且未被填充,则入栈(8向连通区域需考虑更多相邻象素)。 若栈不空,则重复第一步。,void FloodFill4(int x, int y, int oldColor, int newColor) if (GetPixel
7、(x,y)=oldColor) PutPixel(x,y,newColor); FloodFill4(x,y+1,oldColor,newColor); FloodFill4(x,y-1,oldColor,newColor); FloodFill4(x-1,y,oldColor,newColor); FloodFill4(x+1,y,oldColor,newColor); ,Algorithm,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,Example:,算法: (1)填充并确定种子点所在的区段; (2)将种子区段压栈; (
8、3)若堆栈非空,栈顶区段出栈;否则算法 结束; (4)填充并确定新的区段, 将其区段信息 压栈.,(2)扫描线算法,扫描线种子填充算法流程(1),初始化:由指定的种子象素点(x,y)生成种子(y,xl,xr),填充并入栈。 (xl,xr分别为种子点所在扫描线上多边形内部区间的左、右端点) 第一步:若种子栈空则算法终止,否则栈顶种子出栈 第二步:确定新种子:分别确定y+1,y-1扫描线上与(y,xl,xr)连通的区间;填充新区间并将新种子压入堆栈 第三步:上述过程循环执行。,扫描线种子填充算法流程(2),考虑到区域可以是凹的或有内环的,所以可能在该扫描线上出现多个填充区间,亦即需定义多个种子。,
9、同样考虑到凹或有孔的区域,需对扫描线y-1进行同样的处理,获得新的种子。,扫描线种子填充算法的改进思路,算法中的回溯过程并非总是必要的。,Pattern filling,用图象(pattern)填充区域,Definition of the pattern: M X N bitmaps patternij: the value of the position (i,j),Two issues,the relation of the area of the pattern to that of the primitive Relative anchor Absolute anchor write
10、mode Transparent Opaque,Relative anchor,To anchor the pattern at a vertex of the primitive: (x0,y0) valuexy=pattern(x-x0)%M(y-y0)%N,Absolute anchor,To consider the entire screen as being tiled with the pattern and to think of the primitive as consisting of an outline or filled area of transparent bi
11、ts that let the pattern show through valuexy=patternx%My%n,write mode,Filling with a pattern: Adding extra control to the part of the scan-conversion algorithm that actually writes each pixel Write mode Doing PutPixel with foreground color at a pixel for a 1 in the pattern In transparent mode: 若为0,则
12、不改变屏幕上该象素的颜色(不做任何处理); In opaque mode 若为0,则用背景色显示该象素,Pattern filling without repeated scan conversion,Rectangle write To scan convert a primitive first into a rectangular work area, and then to write each pixel from that bitmap to the appropriate place in the canvas. Twice as much work as filling dur
13、ing scan conversion Be suitable to characters, icons and application symbols,(d) Bitmap for solid version of house icon. (e) Clearing the scene by writing background (f) Brick pattern applied to house icon (g) Writing the screen transparently with patterned house icon,An example: Writing a patterned
14、 object in opaque mode with two transparent writes,Thick primitives 在产生一定宽度的线条时,只需用一个“刷子”来替代单象素直线段中扫描生成的单象素即可.,线画图元的属性控制,Replicating pixels(1) (线刷子),Using more than 1 pixel for each column (or row) during scan conversion,Pixels are duplicated in column for lines with 1slope1 Pixels are duplicated in
15、 rows for all other lines,原理:假设直线斜率在-1,+1之间,如图(a)所示.这时可把刷子置成垂直方向图(b).首先将刷子的中点对准直线的一个端点,从该点开始,让刷子中点沿直线的轨迹往直线的另一端点平移即可“刷出”具有一定宽度的直线.如图(c).,m1,m2,(a),(b),(c),Replicating Pixels(2),缺点:(1)线的始末断总是水平或垂直的. (2)线的粗细不一样.水平和垂直线最粗,45斜线最 细. (3) 当线宽为偶数个时,绘制的线条宽度不精确.,Disadvantages,方形刷子是一个宽度为指定线宽的正方形.将正方形的中心对准直线作平移运动即可.,The Moving Pen(方形刷子),The Moving Pen(方形刷子),Thick line drawn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年吉林省德惠市高二生物下册期末考试考试卷带答案(典型题)
- 2025年江西省贵溪市高二生物下册期末考试模拟卷带答案(新)
- 2026年河北省深州市高二生物下册期末考试模拟卷带答案(研优卷)
- 2026年广东省化州市高二生物下册期末考试模拟卷附答案(轻巧夺冠)
- 2025年湖北省汉川市高二生物下册期末考试检测卷及参考答案【达标题】
- 2026年辽宁省海城市高二生物下册期末考试测试卷(考点精练)附答案
- 2026年四川省江油市高二生物下册期末考试检测卷附参考答案(完整版)
- 2025年河南省长葛市高二生物下册期末考试检测卷及1套参考答案
- 2026年江西省贵溪市高二生物下册期末考试考试卷【易错题】附答案
- 2025年浙江省龙泉市高二生物下册期末考试测试卷及参考答案(满分必刷)
- 2026山东城市建设职业学院招聘58人笔试参考题库及答案详解
- 2026年中国光大证券招聘笔试模拟题
- 肺结节精准管理专家共识(2026年版)专家共识解读
- 无人机测绘题库及详解
- 2026沪教牛津七下英语U1-8重点语法归纳+练习
- 2026年小学科学六年级试卷及答案
- 《食品添加剂应用技术》课件-10.2 食品被膜剂 被膜剂
- 《宁夏回族自治区安装工程材料价格信息》 (2025版)
- 2026年高考(广东卷)英语试题及答案
- 医药价格管理工作制度
- 2026年八年级下期地理生物中考会考重要知识点
评论
0/150
提交评论