多边形的扫描转换与区域填充【可编辑PPT】

合集下载

第6讲 扫描转换与区域填充

第6讲 扫描转换与区域填充
8 7 6 5 4 3 2 P6(2,7) A F B P5(5,5) P3(11,3) P1(2,2) P2(5,1) 0 1 2 3 4 5 6 7 8 9 10 11 E C P4(11,8) G D
1
5 -3 P1P2
电子与信息工程学院 计算机科学与技术系
扫描线算法
●规则1:
X为小数,即交点落于扫描线上两个相邻像素之间
电子与信息工程学院 计算机科学与技术系
活性边表
8 7 6 5 4 3 2 P6(2,7) A F B P5(5,5) P3(11,3) P1(2,2) P2(5,1) 0 1 2 3 4 5 6 7 8 9 10 11 E C P4(11,8) G D
1
扫描线为6的活性表
P6P1 2 0 7 P5P6 3.5 -1.5 7 P4P5 7 2 8 P3P4 11 0 8
(a)交点位于左边之上,向右取整 (b)交点位于右边之上,向左取整
电子与信息工程学院 计算机科学与技术系
扫描线算法
●规则2:
边界上象素的取舍问题,避免填充扩大化。
●解决方法:
边界象素:规定落在右上边界的象素不予填充。
具体实现时,只要对扫描线与多边形的相交区间左闭右开
电子与信息工程学院 计算机科学与技术系
然后将该颜色扩展到整个区域的过程。
区域填充算法要求区域是连通的。
电子与信息工程学院 计算机科学与技术系
区域的连通性
四连通:从区域内一点出发,可通过 四个方向:上、下、左、右到达该区 域内部的任意象素。 八连通:区域内部从一个象素到达另 一个象素的移动路径,除了上、下、 左、右四个方向外,还允许沿着对角 线方向。
A
△ x y ma x

【正式版】计算机图形学多边形的扫描转换PPT文档

【正式版】计算机图形学多边形的扫描转换PPT文档

2点的处理原则 P2是边P3P2的终点,同时也是边P2P1的起点。 按照“下闭上开”的原则,可以自动处理。
y
13
P1
12
11
10
9
8
7 P2
6
5
4
3
2
1
P3
P0
P4
P6
P5
O
1 2 3 4 5 6 7 8 9 10 11 12 13
x
图4-10 局部点的处理
0、P3、P5点和P4点的处理原则
扫描线与多边形的顶点相交时,交点的取舍,保证交 点正确配对。
扫描线算法
基本思想:
按扫描线顺序,计算扫
描线与多边形的相交区 y
间,再用要求的颜色显 8
示这些区间的象素,即 完成填充工作。
对于一条扫描线填充过程可 以分为四个步骤:
7 P5 6 5 4 I1 3
I2 P4
P3 I3 I4
扫描线5
2
扫描线2
(1)求交:I4, I3, I2,I1
1 P1
P2
有效边上的扫描线由起点到终点每次加1,即像素 点的y坐标为:y=y+1,x坐标的变化可以按如下方 法推导。
解决方法:
检查两相邻边在扫描线的哪一侧。
只要检查顶点的两条边的另外两个端点的Y值,两个Y值
中大于交点Y值的个数是0,1,2,来决定取0,1,2个
交点。
P1 1
P2
2
3
P3 P4
4.2.3 有效边和有效边表
1.有效边 多边形内与当前扫描线相交的边称为有效边。
在处理一条扫描线时仅对有效边进行求交运算,可以 避免与多边形的所有边求交,提高了算法效率。
P4

《多边形填充》课件

《多边形填充》课件

常见填充算法
扫描线填充算法
通过扫描多边形区域的水平线,确定交点并填充像素。
边界填充算法
从多边形边界的某个点开始,沿着边界推进并填充内部像素。
种子填充算法
通过指定一个种子点,从该点开始向外扩散填充区域。
实例演示
三角形填充
使用扫描线算法和渐变色填充 一个三角形区域。
棋盘格填充
使用边界填充算法和黑白相间 的格子填充一个矩形区域。
纹理填充
使用种子填充算法和一张纹理 图像填充一个复杂的多边形区 域。
填充的应用领域
1 计算机游戏
2 动画制作
填充用于渲染游戏道具、 人物模型和背景场景, 增强游戏画面的真实感。
填充可以给动画中的形 状和物体添加色彩和纹 理,使其栩栩如生。
3 虚拟现实
填充用于在虚拟现实环 境中创建逼真的场景和 对象,增强用户的沉浸 感。
总结和展望
通过本课件的学习,您应该对多边形填充有了更深入的理解。希望您能够将这些知识应用到实际项目中, 并继续探索计算机图形学的更多领域。
填充的定义和作用
填充是将颜色、纹理或图案应用到多边形的过程。它可以增强图形的视觉效 果,使其更加生动、丰富和有吸引力。填充还可以区分多边形之间的空间, 帮助观察者更好地理解和解读图形。
填充的基本原理
填充的基本原理是确定多边形内的像素点,并为这些像素点分配相应的颜色 或纹理。常用的填充算法包括扫描线填充算法和边界填充算法。
《多边形填充》PPT课件
本课件将介绍多边形填充的背通过实例演示帮助理解。最后,将探讨填充的应用领域,并进 行总结和展望。
背景和介绍
多边形填充是计算机图形学中的重要概念,用于给封闭的多边形区域添加颜 色或纹理。它在许多领域中都有广泛的应用,包括计算机游戏、动画制作和 虚拟现实等。

计算机图形学:Lecture 5 多边形的扫描转换及区域填充

计算机图形学:Lecture 5 多边形的扫描转换及区域填充

计算过程
ET:按照每条边y坐标最小值进行排序,并把排序的边按 顺时针顺序加入到对应的扫描线指针中。
计算过程
每条扫描线的AET
边缘填充算法
即假设屏幕上某区域内像素的颜色为M,则对该区域内 像素颜色作偶数次求余运算后,该区域内像素的颜色保 持不变;而做奇数次求余运算后,该区域内像素的颜色 变为M的余。
for (y=rect->ymin;y<=rect->ymax;y++)
LineCoord(xmin,y,xmax,y);
}
多边形扫描转换
•逐点判断算法 •扫描线填充算法 •边缘填充算法
逐点判断算法
实现扫描转换多边形的最简单方法就是逐点判断,即对 屏幕上的每个像素进行判断,确定它们是否在多边形区 域内部,从而求出位于多边形区域内的像素的集合。
可能出现的问题
算法是对每一对交点之间的所有像素进行填充的,因此交点的个数必须是偶数才能保 证填充的正确性。而当扫描线恰好通过多边形的顶点(称为奇异点)时,不适当地计 数就会造成错误 。 例如:对于顶点4,如果只计一次交点,产生错误。
顶点2、6,如果重复计算交点次数,产生错误。
解决方法
规则:当扫描线与多边形顶点相交时,若交点相连边的y 值是单调递增或单调递减的,则填充时只记一个交点; 若交点相连边的y值在局部形成最大值或最小值,则填充 时记下两个交点。
④如果这些扫描线既不包含边界像素,也不包含已填充的像素,则在 xLeft<x<xRight中,把每一像素段的最右像素取作为种子像素,并压入 堆栈;
for (i=1; i<=n; i++) for (x=xi; x<max; x++)

计算机图形学5多边形扫描转换和区域填充

计算机图形学5多边形扫描转换和区域填充

逐点判断填充算法
区域填充的基本(初级)方法:逐点判断填充算法

逐点判断绘图窗口内的每一个像素; 若在区域的内部:用指定的属性设置该点; 否则不予处理;
设有如下函数: True when x D Inside(D,x,y)= False when x D
D
取矩形R(x1≤x≤x2,y1≤y≤y2),使R包围D, 则逐点判断填充算法如下:
这四点定义了扫描线从X=2 到X=4,从X=7到X=9两个落在 多边形内的区间,该区间内 的像素应取填充色。
x-扫描线算法填充多边形
从该例可以看出,算法的核心是需按x递增顺序排 列交点的x坐标序列。由此,可得到X-扫描线算法步 骤如下: (1)确定多边形所占有的最大扫描线数,得到多边 形顶点的最小和最大y值(ymin和ymax)。
为了计算每条扫描线与多边形各边的交点,最简单的方法 是把多边形的所有边放在一个表中。在处理每条扫描线时, 按顺序从表中取出所有的边,分别与扫描线求交。 但这个算法效率比较低,因为这个算法的关键问题是求 交!而求交是很可怕的,求交的计算量是非常大的。 假设一个100边形(一个卡通片至少是100、200个边形), 现在每条扫描线和这个多边形求交点,一共有1024条扫描线 ,一共要进行10万多次求交运算,每次求交还要做大量的加 减乘除法,计算量太大。 最理想的算法是不求交(排序、配对、填色总是要的)! 如果不求交,那会极大提高算法的效率。
多边形分为凸多边形、凹多边形、含内环的多边 形等:
(1)凸多边形 任意两顶点间的连线均在多边形内。
(2)凹多边形
任意两顶点间的连线有不在多边形内的部分。
凸多边形
凹多边形
含内环的多边形
有关概念
1) 区域:一组相邻而且又相连的像素,而且具有 相同属性的封闭区域。 2)种类:①单域 ②复合域

多边形的扫描转换和区域填充技巧

多边形的扫描转换和区域填充技巧

如何进行多 边形填充?
2020/1/21
20/82
Scan-Line Polygon-Filling
Determine the intersection positions of the region boundaries with the scan lines
Apply fill colors to each section of a scan line that lies inside the fill region (odd-even rule)
2020/1/21
ห้องสมุดไป่ตู้
提出问题
上一章讲述了如何生成点、线和圆等 基本几何构造。
本章重点如何在指定的输出设备上构 造多边形域、像素数组等高级图元
2020/1/21
2/82
主要内容 主要内容
矩形填充 内外测试 多边形扫描转换 区域填充 多边形扫描转换与区域填充的区别 反走样
ymax
2020/1/21
ymin xmin
xmax
6/82
2020/1/21
ymax
ymin 如何完成填充
的?? xmin
xmax
如何实现算法??
ymax
填充前 填充后
ymin xmin
xmax
7/82
矩形扫描转换算法
FillRect(Rect *rect, int color) { int x,y; for (y=rect->ymin;y<=rect->ymax,y++)
2020/1/21
26/82
填充步骤
(1)求交点 (2)交点排序
如何 高(3)效交点率配对 求交(4点)区?间填色

【推荐文档】计算机图形学多边形的扫描转换PPT

【推荐文档】计算机图形学多边形的扫描转换PPT

3.多边形的扫描转换
将多边形的描述从顶点表示法变换到点阵
表示法的过程,称为多边形的扫描转换。即 (xi+1,yi+1)
当S=8时,添加上新边P0P1和P0P6。
从多边形的顶点信息出发,求出多边形内部 P0(7,8),P1(3,12),P2(1,7),P3(3,1),
把有效边按照与扫描线交点x坐标递增的顺序存放在一个链表中,称为有效边表
计算机图形学多边形的扫描转 换
4.1 实面积图形的概念
多边形: 用一系列首尾相连线段构成的封闭图形。 分为凸多边形、凹多边形、含内环的多边形。
凸多边形: 如果在多边形内任选两个点,将这两个点用线 段连接后,此线段上所有的点都在多边形内。 凹多边形:非凸多边形。
多边形的表示方法
(1)顶点表示:用多边形顶点的序列来刻画多边形。 (2)点阵表示:用位于多边形内的象素的集合来刻画多边形。
(2)排序:I1, I2, I3, I4
0 1 2 3 4 5 6 7 8 9 10 x
(3)配对:(I1, I2), (I3,
I4)
(4)填色:
4.2 有效边表填充算法
4.2.1 填充原理 4.2.2 边界像素的处理原则 4.2.3 有效边和有效边表 4.2.4 桶表和边表
4.2.1 填充原理
的各个像素点信息。 图 4-6 边界像素的问题
S=11的扫描线处理完毕后 对于P1P2边和P0P1边,因为下一条扫描线S=12和ymax相等,根据“下闭上开”的原则予以删除。
4.1.3 多边形的填充 (1)求交:I4, I3, I2,I1
确定穿越多边形内部的扫描线的覆盖区间。首 当S=7时,添加上新边P1、P2。
扫描线与多边形的顶点相交时,交点的取舍,保证交 点正确配对。

Ch541多边形转换 39页PPT文档

Ch541多边形转换 39页PPT文档

利用扫描线的连贯性 和多边形边的连贯性
获得交点坐标,每条条扫描线仅对有效边
求交
y
12
有效边
11 10
9
活性边Active Edge
8 7
与当前扫描线相交的边
6 5
4
3
2
1
1 2 3 4 5 6 7 8 9 101112 x
YTU
数据结构
有效边 (Active Edge) 有效边表 (Active Edge Table) 边表 (Edge Table)
注意
请按照题目中关于顶点的分离要求构造边 表!
默认: 不分离
YTU
作业与练习
☆课堂练习1: P149 5.10 ☆课堂练习2: AET ☆作业 5.11 p149
谢谢!
39
边表节点
x|ymin ymax 1/k
边低端点处的x值
next
YTU
边表中不包含水平边
2
YTU
边表中不包含水平边
y
12
11 10
e1
9 8
e2
e7
7 6
e6
5 4 3 2
e3 e5
e4
1
当扫描线与多
边形的顶点相 交时, 交点计 为1 时的问题
1 2 3 4 5 6 7 8 9 10 11 12 x
YTU
3 5 3/4 3.8 5 3/4 4.5 5 3/4 5.3 5 3/4 6 5 3/4
7 12 -1 6 12 -1 5 12 -1
8 5 -1/2 7.5 5 -1/2 7 5 -1/2 6.5 5 -1/2 6 5 -1/2
79 5 12 9 5
8 9 1/2 8.5 9 1/2 9 9 1/2 9.5 9 1/2 10 9 1/2 10.5 9 1/2 11 9 1/2 11.5 9 1/2 12 9 1/2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、边界上象素的取舍问题,避免填充扩大化。 解决方法: 边界象素:规定落在右上边界的象素不予填充。 具体实现时,只要对扫描线与多边形的相交区间实行: 左闭右开(左边界像素填充,右边界像素不填充) 下闭上开(下边界像素填充,上边界像素不填充)
2021年3月22日
属于谁?
计算机图形学
12
需要解决的几个问题(三)
2021年3月22日
计算机图形学
5
步骤
(1)确定多边形所占有的最大扫描线数,得到多边形顶点的最小和 最大y值(ymin和ymax)。
(2)从y=ymin到y=ymax,每次用一条扫描线进行填充。 (3)对一条扫描线填充的过程可分为四个步骤:
①计算扫描线与多边形各边的交点。 ②对求得的交点进行排序。 ③奇偶配对求出扫描线与多边形的相交区间。 ④ 对这些相交区间填充色。
多边形的扫描转换与区域填充
2021年3月22日
计算机图形学
1
3.4.1 扫描转换(扫描线)法
多边形的扫描转换:把多边形的顶点表示转换为点 阵表示,也就是从多边形的给定边界出发,求出位 于其内部的各个象素,并给帧缓冲器内的各个对应 元素设置相应的灰度和颜色,通常称这种转换为多 边形的扫描转换。
三种方法:
2021年3月22日
计算机图形学
14
3.4.1.2 扫描转换法-有序边表法
该法与x-扫描线法基本过程一样,只是在处 理求交计算时作了改进。
2021年3月22日
计算机图形学
15
改进思路
可以从以下方面考虑:
1 在处理一条扫描线时,仅对与它相交的边 (有效边)进行求交运算,于是可以构造活性 边表。
2 考虑扫描描线的连贯性,即当前扫描线与各 边的交点顺序与下一条扫描线与各边的交点顺 序很可能相同或者相似。
即算法中采用较灵活的数据结构。它由边的新边表 NET(new Edge Table)和边的活性边表AET (Active Edge Table )两部分组成。
表结构NET和AET中的基本元素为多边形的边。边 的结构由以下四个域组成:
ymax :边的上端点的y坐标; x:在NET中表示边的最低点的x坐标,在AET中则 表示边与扫描线的交点的坐标; Δx:边的斜率的倒数;(当前扫描线到下一条扫 描线x的增量) next :指向下一条边的指针。
若共享顶点的两条边分别落在扫描线的两边, 交点只算一个;
若共享顶点的两条边在扫描线的同一边,这时 交点作为零个或两个。
2021年3月22日
计算机图形学
8
具体实现时只要检查顶点的两条边的另外两个 端点的Y值,两个Y值中大于交点Y值的个数是0, 1,2,来决定取0,1,2个交点。
2021年3月22日
有效边表(Active Edge Table, AET): 把有效边按与扫描线交点x坐标递增的顺序 存放在一个链表中,此链表称为有效(活性) 边表。
2021年3月22日
计算机图形学
17
数据结构与实现步骤
只需对当前扫描线的活动边表作更新,即可 得到下一条扫描线的活动边表。
2021年3月22日
计算机图形学
3 多边形边的连贯性,即当一条边与当前扫描 线相交时,它可能也与下一条扫描线相交。
2021年3月22日
计算机图形学
16
所有的边和扫描线求交,效率很低。因为一 条扫描线往往只和少数几条边相交。
如何判断多边形的一条边与扫描线是否相交?
有效边(Active Edge):指与当前扫描线 相交的多边形的边,也称为活性边。
点阵表示:用位于多边形内的象素的集合来刻划多 边形。失去了许多重要的几何信息;便于运用帧缓 冲存储器表示图形,易于面着色。
2021年3月22日
计算机图形学
4
3.4.1.1扫描线算法-x扫描线法
扫描线算法
目标:利用相邻像素之间的连贯性,提高算法 效率
处理对象:非自交多边形 (边与边之间除了顶 点外无其它交点)
2021年3月22日
计算机图形学
6
需要解决的几个问题
扫描线与多边形顶点相交时交点的取舍问题 多边形边界上像素点的取舍问题 水平边的处理 减少求交运算问题
2021年3月22日
计算机图形学
7
需要解决的几个问题(一)
一、当扫描线与多边形顶点相交时,交点的取 舍问题。
解决:当扫描线与多边形的顶点相交时,
计算机图形学
9
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
与多边形顶点相交的交点的处理
2021年3月22日
计算机图形学
10
0
1 1
1 1
02
2 2
与扫描线相交的多边形顶点的交点数
2021年3月22日
计算机图形学
11
需要解决的几个问题(二)
18
如何计算下一条扫描线与边的交点
直线方程:ax+by+c = 0
当前交点坐标:(xi, yi) 下一交点坐标:(xi+1,yi+1) xi+1= ((-byi+1)-c)/a = ((-byi+1)-c)/a =xi-b/a=xi-1/k
活动边表中需要存放的信息: x:当前扫描线与边的交点
dx=-b/a:从当前扫描线到下一条扫描线之间的x增量△x
三、水平边的处理(与扫描线重合) 将水平边画出后删去,不参加求交,即求交 后的操作(但是在计算交点个数时算作一个 点)。
2021年3月22日
计算机图形学
13
需要解决的几个问题(四)
减少求交算法:x-扫描线法在处理每条扫描 线时需要与多边形的所有边求交,而实际上 一条扫描线往有序边 表法,也称y连贯性算法。
ymax:边所交的最高扫描线
2021年3月22日
计算机图形学
19
数据结构与实现步骤
为了方便边的活化链表的更新,建立另一个 表-新边表,存放在该扫描线第一次出现的 边。
存放的信息:
x:扫描线与该边的初始交点
dx:x的增量
ymax:该边的最大y值
2021年3月22日
计算机图形学
20
数据结构与实现步骤
扫描线算法 边填充算法 边界标志法
2021年3月22日
计算机图形学
2
多边形分类
多边形分为凸多边形、凹多边形、含内环的 多边形。
2021年3月22日
计算机图形学
3
多边形表示
多边形的表示方法
顶点表示
点阵表示
顶点表示:用多边形顶点的序列来刻划多边形。直 观、几何意义强、占内存少;不能直接用于面着色。
相关文档
最新文档