广工数媒计算机图形学之5基本图形生成算法-多边形扫描转换及区域填充

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
广东工业大学机电学院图学与数字媒体工程系
计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充 多边形扫描转换——x-扫描线算法 x-扫描线算法填充多边形基本思路:
扫描线与x轴平行。按照扫描顺序,计算每一条扫描线与多边 形的相交区间,用指定颜色显示区间内的像素。区间的端点 可以通过计算扫描线与多边形边界线的交点获得。 x-扫描线算法可以填充凸、凹多边形,也可填充中间有空的 多边形。
广东工业大学机电学院图学与数字媒体工程系
计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充
多边形扫描转换——x-扫描线算法
x-扫描线算法涉及的问题: 一、扫描线与多边形边界交点的 有效性判别; 扫描线y=5与AB边有无效交点k, 在做求交运算之前,判断该扫 描线的y坐标不在点A和点B的y 坐标之间,不做求交运算。
广东工业大学机电学院图学与数字媒体工程系
计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充 填充算法——边标志填充算法
边标志算法的实现步骤: 三、填充。至下而上完成扫描后,将所有inside值为true的像 素点集的颜色置换为填充色,完成多边形填充。 “边标志.SWF”演示了边标志算法实现的过程。
计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充
填充算法——边标志填充算法
边标志算法是边缘填充算法的优化实现。 边标志算法的实现步骤: 一、边标记。首先对多边形的每一条边进行直线的扫描转换, 然后给扫描转换后得到的像素添加边标记。 二、点标记。对每一个像素使用一个布尔值inside指示当前状 态,inside初值为false。每条扫描线依从左到右的顺序扫描。 遇到被标记过的点后, inside值取反,直至遇到下一个被标 记点为止。
广东工业大学机电学院图学与数字媒体工程系
计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充
区域填充——边界填充算法
栈结构实现4-连通边界填充算法步骤: (1)种子像素入栈; (2)栈顶象素出栈; (3)将出栈象素置成填充色; (4)检查出栈象素的4-邻接点,若其中某个象素点不是边 界色且未置成多边形色,则把该象素入栈。 (5)检查栈是否为空,若非空,则执行步骤(2),若为 空,则结束。 4-连通边界填充.SWF
4-邻接点
8-邻接点
广东工业大学机电学院图学与数字媒体工程系
计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充 区域填充
与区域填充相关的概念: 栈——栈是一种数据项按序排列的数据结构,只能在一端(称 为栈顶(top))对数据项进行插入和删除的操作。对栈内数据的 操作遵循后进先出(Last-In/First-Out) 的原则。
广东工业大学机电学院图学与数字媒体工程系
计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充
多边形扫描转换——x-扫描线算法
算法的实现步骤:
一、确定多边形所有顶点的 ymax和ymin,得到扫描的范围 和最大扫描线数; 二、求交:扫描线与多边形各 边求交点,并确定交点的有效 性; 三、排序:将所有有效交点按 x坐标的大小排序;
广东工业大学机电学院图学与数字媒体工程系
计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充 填充算法——边缘填充算法
“边缘填充算法的过程.SWF”演示了边缘填充算法的实现过 程。 该算法的优点是简单,缺点是对于复杂图形,每一像素可 能要访问多次,效率降低。
广东工业大学机电学院图学与数字媒体工程系
通常用确定穿越多边形区域的扫描线的覆盖区域的方 法来填充多边形。
用从给定的位置开始涂描直到指定的边界条件为止的 方法来填充以像素点阵表示的区域。
广东工业大学机电学院图学与数字媒体工程系
计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充
区域的表示法
以多边形定义的区域用 多边形的顶点序列来定 义边界。这种方法直观, 几何意义强,占用内存 小。但是由于没有明确 位于多边形内部的像素 集合,所以不能直接用 于面着色。
5 4 3
2
“X-扫描线算法填充.SWF”演示 1
源自文库
x-扫描线算法实现的过程。
1 2 3 4 5 6 7 8 9 10 11 12 x
广东工业大学机电学院图学与数字媒体工程系
计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充 填充算法——边缘填充算法
边缘填充算法的基本思想是逐边向右求补。可以按任意顺 序处理多边形的每一条边。在处理每一条边时,首先求出 该边与扫描线的交点,然后将每一条扫描线上交点右方的 所有像素点取补(若这些点为背景色,则置换为填充色; 若这些点为填充色,则置换为背景色)。 多边形的所有边处理完毕后,填充完成。
计算机图形学基础
多边形扫描转换及区域填充
广东工业大学机电学院图学与数字媒体工程系
计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充
计算机图形学一个重要问题是在一个区域的内部填上 不同的图案、灰度或色彩。
计算机图形学领域所说的区域分为两类:一类是以顶 点和边界界定的多边形;一类是以像素点阵(即多边 形内部的像素的集合)表示的区域。
广东工业大学机电学院图学与数字媒体工程系
计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充
区域的表示法
点阵表示用位于多边形内部的 像素的集合来刻画多边形。这 种表示法失去了多边形重要的 几何信息(如顶点、几何边界 等),但便于用帧缓存表示图 形,是面着色所需要的图形表 示形式。
广东工业大学机电学院图学与数字媒体工程系
计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充
大多数的图形系统采用顶点序列表示多边形。为解决这种表 示法“没有明确位于多边形内部的像素集合,所以不能直接 用于面着色”的问题,需要有从多边形顶点表示到点阵表示 的转换。这种转换称为多边形扫描转换。 多边形扫描转换即多边形的填充,需要从多边形的顶点信息 出发,求出位于多边形内部的各个像素点,并将其颜色写入 帧缓存的相应单元中。 二维多边形的扫描转换是三维立体面着色的基础。
广东工业大学机电学院图学与数字媒体工程系
计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充
多边形扫描转换——x-扫描线算法
x-扫描线算法涉及的问题:
y
二、扫描线与多边形顶点相交时 12
交点的取舍问题;
11
10
情况1、共享顶点的两条边分别落
9 8
在扫描线两侧时,交点记为1个。 7
6
情况2、共享顶点的两条边位于扫 描线同侧,交点记为0个或2个。
广东工业大学机电学院图学与数字媒体工程系
计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充
区域填充——边界填充算法
算法步骤:用户确定边界颜色;确定填充色和填充模式 (4-连通或8-连通边界填充算法);指定内部点(种子 点),按规则搜索当前点的4-邻接点或8-邻接点,若这些 点非边界色,也非指定填充色,则置换该点的颜色为填充 色,直至完成多边形内部填充。 边界填充算法不要求区域内、外颜色不同,即原多边形内 部可以为背景色。
广东工业大学机电学院图学与数字媒体工程系
计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充
多边形扫描转换——x-扫描线算法
算法的实现步骤:
y
四、交点配对:奇数序号和偶 数序号的交点配对;
12 11 10
五、区间填色:将位于一对交 点之间的像素置换成指定颜色。
9 8 7
6
5
4
3
2
1
1 2 3 4 5 6 7 8 9 10 11 12 x
广东工业大学机电学院图学与数字媒体工程系
计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充
区域填充——泛填充算法
泛填充算法通常用于给区域重新着色。要求原多边形内部有 与背景不同的颜色。 该算法要求确定种子点、填充色和原多边形内部点的颜色。 算法从种子点开始,按照4-连通或8-连通定义搜索邻接点, 用填充色置换内部点的颜色,实现多边形的重新着色。 泛填充通常也应用栈操作来实现。 8-连通泛填充.SWF
计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充
区域填充
与区域填充相关的概念: 边界表示——把位于边界的像素一一列举出来,即区域边界 上的像素用同一种颜色着色。 4-连通区域和8-连通区域——确定了区域内点的邻接方式。
以4-邻接点定义的区域称为4连通区域;以8-邻接点定义 的区域称为8-连通区域。
广东工业大学机电学院图学与数字媒体工程系
广东工业大学机电学院图学与数字媒体工程系
计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充 区域填充
区域填充针对以像素点阵(即多边形内部的像素的集合) 表示的区域的填充。 区域填充的思路为:从区域内的一个点(种子点)开始, 由内向外将填充色扩展到整个区域。
广东工业大学机电学院图学与数字媒体工程系
相关文档
最新文档