多边形的扫描转换与区域填充

本文介绍了多边形的扫描转换,包括扫描线算法和边界标志算法,以及区域填充的基本原理和递归算法,探讨了4连通和8连通区域的填充策略。
摘要由CSDN通过智能技术生成
在计算机图形学中,多边形有两种重要的表示方法:顶点表示和点阵表示。顶点表示是用多边形的顶点序列来表示多边形。这种表示直观、几何意义强、占内存少,易于进行几何变换,但由于它没有明确指出哪些象素在多边形内,故不能直接用于面着色;点阵表示是用位于多边形内的象素集合来刻画多边形。这种表示丢失了许多几何信息,但便于帧缓冲器表示图形,是面着色所需要的图形表示形式。光栅图形的一个基本问题是把多边形的顶点表示转换为点阵表示,这种转换称为多边形的扫描转换。

 区域填充则是指先将在点阵表示的多边形区域内的一点(称为种子点)赋予指定的颜色和灰度,然后将这种颜色和灰度扩展到整个区域内的过程。

(1)多边形的扫描转换

多边形扫描转换算法对多边形的形状没有限制,但多边形的边界必须是封闭的,且不自交。我们可以将多边形分为三种:凸多边形、凹多边形、含内环的多边形。

  • 凸多边形是指任意两顶点间的连线均在多边形内;

  • 凹多边形是指任意两顶点间的连线有不在多边形内的部分;

  • 含内环的多边形则是指多边形内再套有多边形,多边形内的多边形也叫内环,内环之间不能相交。

图2.3.1 多边形的种类

(a)扫描线算法

扫描线算法是按扫描线顺序,计算扫描线与多边形的相交区间,再用要求的颜色显示这些区间的象素,完成转换工作。区间的端点可以通过计算扫描线与多边形边界线的交点获得。对于一条扫描线,多边形的扫描转换过程可以分为四个步骤:

  • 求交:计算扫描线与多边形各边的交点;

  • 排序:把所有交点按x值递增顺序排序;

  • 配对:第一个与第二个,第三个与第四个等等;每对交点代表扫描线与多边形的一个相交区间,

  • 着色:把相交区间内的象素置成多边形颜色,把相交区间外的象素置成背景色。

图2.3.2 一个多边形与若干扫描线

为了提高效率,在处理一条扫描线时,仅对与它相交的多边形的边进行求交运算。我们把与当前扫描线相交的边称为活性边,并把它们按与扫描线交点x坐标递增的顺序存放在一个链表中,称此链表为活性边表(AET)。

活性边表的结点应为对应边保存如下内容:第1项存当前扫描线与边的交点坐标x值;第2项存从当前扫描线到下一条扫描线间x的增量Dx第3项存该边所交的最高扫描线号ymax

a. 扫描线6的活性边表

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值