计算机图案填充的两种方法,计算机图形学课件 第9讲 区域填充和字符处理.ppt...
计算机图形学课件 第9讲 区域填充和字符处理
信息科学与工程学院 1999年7月 5.4.1 多边形的扫描转换 多边形的两种表示方法: 顶点表示:用多边形的顶点序列来刻划多边形。直观、几何意义强、占内存少;不能直接用于面着色。 点阵表示是用位于多边形内的像素的集合来刻划多边形。失去了许多重要的几何信息;便于运用帧缓冲存储器表示图形,易于面着色。 算法步骤: (1)确定多边形所占有的最大扫描线数,得到多边形顶点的最小和最大y值(ymin和ymax)。 (2)从y=ymin到y=ymax,每次用一条扫描线进行填充。对一条扫描线填充的过程可分为四个步骤: a. 求交:计算扫描线与多边形各边的交点; b. 排序:把所有交点按x值递增顺序排序; c. 配对:第一个与第二个,第三个与第四个等等;每对交点代表扫描线与多边形的一个相交区间; d. 填色:把相交区间内的像素置成多边形颜色,把相交区间外的像素置成背景色。 存在问题和解决方法:当扫描线与多边形顶点相交时,交点的取舍问题。 3. 改进的有效边表算法(Y连贯性算法) 有效边(Active Edge):指与当前扫描线相交的多边形的边,也称为活性边。 有效边表(Active Edge Table, AET):把有效边按与扫描线交点x坐标递增的顺序存放在一个链表中,此链表称为有效边表。 有效边表的每个结点: x ymax 1/k next 边表(Edge Table)——方便有效边的建立和更新 边表的构造: (1)首先构造一个纵向链表,链表的长度为多边形所占有的最大扫描线数,链表的每个结点,称为一个桶,其对应多边形覆盖的每一条扫描线。 (2)将每条边的信息链入与该边最小y坐标(ymin )相对应的桶处。也就是说,若某边的较低端点为ymin,则该边就放在相应的扫描线桶中。 (3)每条边的数据形成一个结点,内容包括:该扫描线与该边的初始交点x(即较低端点的x值),1/k,以及该边的最大y值ymax。 x|ymin ymax 1/k next 算法步骤: (1)初始化:构造边表,AET表置空; (2)将第一个不空的ET表中的边与AET表合并; (3)由AET表中取出交点对进行填充。 填充时设一布尔变量b(初值为假),令指针从AET中第一个结点到最后一个结点遍历一次,每访问一个结点,把b取反一次,若b为真,则把从当前结点的x值到下一结点的x值结束的区间用多边形色填充。填充之后删除y=ymax的边。(期间,x=round(x) ) (4)yi+1=yi+1,根据xi+1=xi+1/k计算并修改AET表,同时合并ET表中y=yi+1桶中的边,按次序插入到AET表中,形成新的AET表; (5)AET表不为空则转(3),否则结束。 5.4.2 边缘填充算法 边缘填充算法基本思想 按任意顺序处理多边形的每条边。在处理每条边时,首先求出该边与扫描线的交点,然后将每一条扫描线上交点右方的所有像素取补。 5.4.3 区域填充 区域填充是指从区域内的一个点(种子)开始,由内向外将填充色扩展到整个区域内的过程。 区域是指已经表示成点阵形式的填充图形,它是像素集合。通常有内点表示和边界表示两种形式。 边界表示法 边界表示法:把位于给定区域的边界上像素一一列举出来的方法。 在边界表示法中,区域边界上的像素着同一颜色,而区域内的像素点不能着这种颜色。 由于边界以特殊颜色指定,填充算法可逐个像素地向外处理,直到遇到边界颜色为止。以此为基础的区域填充算法称为边界填充算法(Boundary-fill Algorithm)。 内点表示法 内点表示:枚举出给定区域内所有像素的表示方法。 在内点表示法中,区域内的所有像素点着同一颜色,而区域边界上的像素着不同的颜色。 以内点表示法为基础的区域填充算法称为泛填充算法(Flood-fill Algorithm)。 区域通常分为4-连通区域和8-连通区域两类。 一个点p的4-邻接点是指上、下、左、右四个相邻的点。 一个点p的8-邻接点是指上、下、左、右、左上、右上、左下、右下八个相邻的点。 4-连通区域是指从区域上一点出发,通过访问已知点的4-邻接点,在不越出区域的前提下,遍历区域内的所有像素。 8-连通区域是指从区域上一点出发,通过访问已知点的8-邻接点,在不越出区域的前提下,遍历区域内的所有像素。 1. 边界填充算法 算法的输入:种子点坐标(x,y),填充色和边界颜色。 栈结构实现4-连通边界填充算法的算法步骤为: 种子像素入栈;当栈非空时重复执行如下三步操作: (1)栈顶像素出栈; (2)将出栈像素置成填充色;
计算机图案填充的两种方法,计算机图形学课件 第9讲 区域填充和字符处理.ppt...相关推荐
- 计算机被填充背景花束纹理在那,为艺术字设置纹理填充的两种方法
Word2007系统中的纹理效果同样可以应用于艺术字的填充.文字表面添加纹理填充使文字看起来富于质感和立体感,word文档自带的已经有很多可供选择的漂亮纹理,用户在使用中根据其展示效果选择需要的纹理填 ...
- win2012命令计算机,Windows2012重启的两种方法:cmd命令关机重启分享
分享者:iweb2020 阅读量:3748 小金子学院目录最新收录:投资寓言故事之鸡的故事 D 囻 囼9困 囱 囲㊣男 Windows2012重启的两种方法:cmd命令关机重启分享 一,window ...
- 计算机表示图形的两种方法,图像参数
电脑美术中,应用最多的就是图像,图像可以分为模拟图像和数字图像两种.数字图像又分为矢量图形和位图图像.在用电脑进行处理时,可以用切换图像模式的方法改变图像的色彩,图像模式可分为彩色模式.黑白模式与灰度 ...
- 阻止计算机病毒侵入系统的两种方法,电脑防止病毒入侵的方法步骤
我们在使用电脑时,往往由于缺少一些防护措施,导致电脑感染病毒,影响我们电脑的安全,对我们的一些文件资料等也会有负面的影响,那么要如何防止电脑病毒入侵呢?下面就让学习啦小编给大家说说电脑怎么防止病毒入侵 ...
- 怎么创建计算机快捷方式到桌面两种方法,使用脚本主机创建Windows快捷方式 - Windows Client | Microsoft Docs...
如何使用脚本宿主创建Windows快捷方式 12/03/2020 本文内容 本文介绍如何通过使用 Microsoft Windows Script Host (WSH) Visual FoxPro 创 ...
- 如何在计算机中输入分数,两种方法在word中轻松输入分数
不知道微软设计Office的时候有没有替我们用户考虑下,毕竟分数是很多办公人员常用的单位.PConline小编甚至还打听了一下,发现有许多朋友不知道分数怎么打,所以每次都用斜杠"/" ...
- oracle 判断是否位汉字,js判断字符是否是汉字的两种方法小结
有时需要判断一个字符是不是汉字,比如在用户输入含有中英文的内容时,需要判断是否超过规定长度就要用到.用 Javascript 判断通常有两种方法. 1.用正则表达式判断 js判断字符是否是汉字 .co ...
- 查看计算机.net环境版本,windows7系统查看NET Framework版本的两种方法
现在,很多用户都会在电脑中安装NET Framework,因为一些程序需要NET Framework才能运行.那么,如果想要查看我们计算机中的 NET Framework版本,该如何操作呢?接下来,就 ...
- win7如何调整计算机c盘,win7系统让c盘和d盘合并的两种方法
有时我们可能需要将雨林木风win7系统电脑的两个盘符合并,这样可以增大内存空间,比如让c盘和d盘合并,这样就有足够的空间了.之前小编教程分享win7系统分区的方法,但是要让c盘和d盘合并该怎么操作呢? ...
最新文章
- 【Codeforces】835B The number on the board (贪心)
- 【OpenCV 4开发详解】图像膨胀
- 谷歌首席科学家:搞研究的痛苦,搞工程的人不懂
- php 将换行符替换,PHP替换回车换行符的三种方法
- Applese 填数字
- boost::hana::list用法的测试程序
- 史上最复杂业务场景,逼出阿里高可用三大法宝
- mysql 恢复 二进制,mysql通过二进制日志恢复数据库
- keras核心已转储_转储Keras-ImageDataGenerator。 开始使用TensorFlow-tf.data(第2部分)
- mysql没有makefile_编译安装mysql,找不到makefile
- 最新 android 机型,安卓11支持哪些机型,Android11适配机型一览
- java中使用activiti(工作流)
- python转换js_python转换Javascript
- jQuery 键盘快捷键
- PHP+SQlite 制作简单的留言板
- ‘dtools’不是内部或外部命令,也不是可运行的程序或批处理文件,个人解决方案
- 刚性仿射变换算法_一种视觉定位中的点集仿射变换算法的制作方法
- 热烈欢迎茂名高级技工学校毕业生参加我司技术工程师岗前实训
- 一种基于Android、iOS系统的移动端车牌识别方法,实现手机拍照识别车牌
- 开源的基于层合板理论的复合材料ABD矩阵计算、失效预测
热门文章
- JSP--(使用请求转发的动作标识jsp:forward)
- linux切换目录使用命令,linux命令切换目录的使用方法
- myftpadmin+proftpd+mysql架设ftp服务器_linux下用Proftpd搭建ftp服务器及配置方法
- mysql 压缩的blob不能正常显示中文内容_servlet网页显示MySQL BLOB中文乱码
- c语言error ld returned,[Error] ld returned 1的错误
- 爱链工具怎么使用 爱链工具详细使用图文教程
- win10使用网络共享功能的方法
- 彩虹浏览器使用技巧:页签自动切换
- java中的字符串_java中字符串的操作
- mysql中数据类型的长度