- 10
- 0
- 约9.35千字
- 约 13页
- 2020-09-14 发布于浙江
- 举报
计算机图形学基础读书报告 计82 于乃通 2008011320
多边形扫描转换与区域填充
在计算机图形学中,多边形有两种重要的表示方法:顶点表示和点阵表示。顶点表示是
用多边形的顶点序列来表示多边形。这种表示直观、几何意义强、占内存少,易于进行几何
变换,但由于它没有明确指出哪些象素在多边形内,故不能直接用于面着色;点阵表示是用
位于多边形内的象素集合来刻画多边形。这种表示丢失了许多几何信息,但便于帧缓冲器表
示图形,是面着色所需要的图形表示形式。光栅图形的一个基本问题是把多边形的顶点表示
转换为点阵表示,这种转换称为多边形的扫描转换。
区域填充则是指先将在点阵表示的多边形区域内的一点(称为种子点)赋予指定的颜色
和灰度,然后将这种颜色和灰度扩展到整个区域内的过程。
一、多边形的扫描转换
多边形扫描转换算法对多边形的形状没有限制,但多边形的边界必须是封闭的,且不自
交。我们可以将多边形分为三种:凸多边形、凹多边形、含内环的多边形。所谓凸多边形是
指任意两顶点间的连线均在多边形内;凹多边形是指任意两顶点间的连线有不在多边形内的
部分;而含内环的多边形则是指多边形内再套有多边形,多边形内的多边形也叫内环,内环
之间不能相交。
(a)凸多边形 (b)凹多边形 (c)含内环的多边形
1、扫描线算法
扫描线算法是按扫描线顺序,计算扫描线与多边形的相交区间,再用要求的颜色显示这
些区间的象素,完成转换工作。区间的端点可以通过计算扫描线与多边形边界线的交点获得
(如下图)。
第1 页,共13 页
计算机图形学基础读书报告 计82 于乃通 2008011320
对于一条扫描线,多边形的扫描转换过程可以分为四个步骤:
1) 求交:计算扫描线与多边形各边的交点。
2) 排序:把所有交点按x 值递增顺序排序。
3) 配对:第一个与第二个,第三个与第四个等等;每对交点代表扫描线与多边形的一
个相交区间。
4) 着色:把相交区间内的象素置成多边形颜色,把相交区间外的象素置成背景色。
存在问题:当扫描线与多边形顶点相交时,交点的取舍问题。如下图所示,在扫描线
y=1 ,y=5 和y=7 时,扫描线过多边形的顶点,若不加以处理,交点配对时会发生错误。
解决方法:当扫描线与多边形的顶点相交时,若共享顶点的两条边分别落在扫描线的两
边,交点只算一个;若共享顶点的两条边在扫描线的同一边,这时交点作为零个或两个。实
际处理时,只要检查顶点的两条边的另外两个端点的Y 值,两个Y 值中大于交点Y 值的个数
是0,1,2,来决定取0 ,1,2 个交点。
由于 x-扫描线算法在处理每条扫描线时,需要与多边形所有的边求交,效率很低,因
此需要加以改进,形成改进的有效边表算法。
改进原理:
(1)处理一条扫描线时,仅对有效边求交。
(2)利用扫描线的连贯性,即当前扫描线与各边的交点顺序与下一条扫描线与各边的交
第2 页,共13 页
计算机图形学基础读书报告 计82 于乃通 2008011320
点顺序很可能相同或非常相似。
(3)利用多边形边的连贯性,即当某条边与当前扫描线相交时,它很可能也与下一条扫
描线也相交:若边的直线斜率为k ,这样边与两条相邻扫描线的交点有如下关系:xi+1=xi+1/k 。
有效边(Active Edge ):指与当前扫描线相交的多边形的边,也称为活性边。
有效边表(Active Edge Table, AET ):把有效边按与扫描线交点x 坐标递增的顺序存放
在一个链表中,此链表称为有效边表。有效边表的每个结点为:
x ymax 1/k next
边表:为了方便有效边表的建立与更新,需要构造一个边表(Edge Ta
原创力文档

文档评论(0)