计算机图形学课件 第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...相关推荐

  1. 计算机被填充背景花束纹理在那,为艺术字设置纹理填充的两种方法

    Word2007系统中的纹理效果同样可以应用于艺术字的填充.文字表面添加纹理填充使文字看起来富于质感和立体感,word文档自带的已经有很多可供选择的漂亮纹理,用户在使用中根据其展示效果选择需要的纹理填 ...

  2. win2012命令计算机,Windows2012重启的两种方法:cmd命令关机重启分享

    分享者:iweb2020  阅读量:3748 小金子学院目录最新收录:投资寓言故事之鸡的故事 D 囻 囼9困 囱 囲㊣男 Windows2012重启的两种方法:cmd命令关机重启分享 一,window ...

  3. 计算机表示图形的两种方法,图像参数

    电脑美术中,应用最多的就是图像,图像可以分为模拟图像和数字图像两种.数字图像又分为矢量图形和位图图像.在用电脑进行处理时,可以用切换图像模式的方法改变图像的色彩,图像模式可分为彩色模式.黑白模式与灰度 ...

  4. 阻止计算机病毒侵入系统的两种方法,电脑防止病毒入侵的方法步骤

    我们在使用电脑时,往往由于缺少一些防护措施,导致电脑感染病毒,影响我们电脑的安全,对我们的一些文件资料等也会有负面的影响,那么要如何防止电脑病毒入侵呢?下面就让学习啦小编给大家说说电脑怎么防止病毒入侵 ...

  5. 怎么创建计算机快捷方式到桌面两种方法,使用脚本主机创建Windows快捷方式 - Windows Client | Microsoft Docs...

    如何使用脚本宿主创建Windows快捷方式 12/03/2020 本文内容 本文介绍如何通过使用 Microsoft Windows Script Host (WSH) Visual FoxPro 创 ...

  6. 如何在计算机中输入分数,两种方法在word中轻松输入分数

    不知道微软设计Office的时候有没有替我们用户考虑下,毕竟分数是很多办公人员常用的单位.PConline小编甚至还打听了一下,发现有许多朋友不知道分数怎么打,所以每次都用斜杠"/" ...

  7. oracle 判断是否位汉字,js判断字符是否是汉字的两种方法小结

    有时需要判断一个字符是不是汉字,比如在用户输入含有中英文的内容时,需要判断是否超过规定长度就要用到.用 Javascript 判断通常有两种方法. 1.用正则表达式判断 js判断字符是否是汉字 .co ...

  8. 查看计算机.net环境版本,windows7系统查看NET Framework版本的两种方法

    现在,很多用户都会在电脑中安装NET Framework,因为一些程序需要NET Framework才能运行.那么,如果想要查看我们计算机中的 NET Framework版本,该如何操作呢?接下来,就 ...

  9. win7如何调整计算机c盘,win7系统让c盘和d盘合并的两种方法

    有时我们可能需要将雨林木风win7系统电脑的两个盘符合并,这样可以增大内存空间,比如让c盘和d盘合并,这样就有足够的空间了.之前小编教程分享win7系统分区的方法,但是要让c盘和d盘合并该怎么操作呢? ...

最新文章

  1. 【Codeforces】835B The number on the board (贪心)
  2. 【OpenCV 4开发详解】图像膨胀
  3. 谷歌首席科学家:搞研究的痛苦,搞工程的人不懂
  4. php 将换行符替换,PHP替换回车换行符的三种方法
  5. Applese 填数字
  6. boost::hana::list用法的测试程序
  7. 史上最复杂业务场景,逼出阿里高可用三大法宝
  8. mysql 恢复 二进制,mysql通过二进制日志恢复数据库
  9. keras核心已转储_转储Keras-ImageDataGenerator。 开始使用TensorFlow-tf.data(第2部分)
  10. mysql没有makefile_编译安装mysql,找不到makefile
  11. 最新 android 机型,安卓11支持哪些机型,Android11适配机型一览
  12. java中使用activiti(工作流)
  13. python转换js_python转换Javascript
  14. jQuery 键盘快捷键
  15. PHP+SQlite 制作简单的留言板
  16. ‘dtools’不是内部或外部命令,也不是可运行的程序或批处理文件,个人解决方案
  17. 刚性仿射变换算法_一种视觉定位中的点集仿射变换算法的制作方法
  18. 热烈欢迎茂名高级技工学校毕业生参加我司技术工程师岗前实训
  19. 一种基于Android、iOS系统的移动端车牌识别方法,实现手机拍照识别车牌
  20. 开源的基于层合板理论的复合材料ABD矩阵计算、失效预测

热门文章

  1. JSP--(使用请求转发的动作标识jsp:forward)
  2. linux切换目录使用命令,linux命令切换目录的使用方法
  3. myftpadmin+proftpd+mysql架设ftp服务器_linux下用Proftpd搭建ftp服务器及配置方法
  4. mysql 压缩的blob不能正常显示中文内容_servlet网页显示MySQL BLOB中文乱码
  5. c语言error ld returned,[Error] ld returned 1的错误
  6. 爱链工具怎么使用 爱链工具详细使用图文教程
  7. win10使用网络共享功能的方法
  8. 彩虹浏览器使用技巧:页签自动切换
  9. java中的字符串_java中字符串的操作
  10. mysql中数据类型的长度