网站大量收购独家精品文档,联系QQ:2885784924

第6讲-多边形填充.pptx

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

2025/3/51本章内容直线的扫描转换圆与椭圆的扫描转换区域填充二维裁剪字符生成反走样

第三节区域填充区域填充是指:在一个封闭的二维图形内部象素上着色(纹理、图案)。也称为:多边形的扫描转换。本节内容:矩形的扫描转换多边形区域填充图案填充

2025/3/53矩形的扫描转换可利用矩形的简单性提高扫描转换的效率。问题:边界(共享边界)像素的绘制?解决:象素中心定位于矩形的左、下边界时绘制象素点。该规则适用于线画矩形及多边形以及共享顶点的情形。

2025/3/54多边形填充—直线的扫描转换算法填充区间:区间端点由扫描线与多边形边界线段的交点确定

2025/3/55注:多边形上的区间(a)原始端点由中点算法确定(b)限制端点在多边形内

2025/3/56实现区间填充的三个步骤计算扫描线与多边形边界线段的交点按照x升序排列交点填充多边形内交点对之间的所有像素?:水平线段如何处理

2025/3/57区间填充策略y=8为例:排序后的交点x坐标列表为:(2,4.5,8.5,13)如何填充?

2025/3/584舍?还是5入?当交点的x坐标值是分数时需进行舍入运算。(b)左端点:向上取整右端点:向下取整

2025/3/59内?或者外?当交点的x坐标值是整数时,需确定该点是内点拟或是外点。(b)在右边界:外点在左边界:内点

2025/3/510交点为尖点交点Pl为尖点时,可计数为:1,2或者0。如下图P0P0P0P0P1P1P1P1P2P2P2P2(a)(b)(c)(d)a)(b)计数为1个交点(c)计数为2个交点(d)计为0个交点规则:端点纵坐标是ymin时计数加1;端点纵坐标是ymax时不计数

2025/3/511续:在具体实现时,对交点的后处理过程可以转化为对边界线段进行的预处理。

2025/3/512扫描线与多边形边界线段交点的计算(1)交点特点:Y方向坐标值满足:交点界于线段两端点间:第一个交点是其端点之一,不妨设为?:后续交点的计算取整?!

2025/3/513扫描线与多边形边界线段交点的计算(2)记前一扫描线与边界线段交点为当前扫描线与该边界线段有否交点可通过其纵坐标值确定。记当前扫描线与边界线段交点为x的取整需针对边界线段在多边形的左右两侧做不同的处理:左侧边:向右取整,且当交点落在边界上时视做内部点右侧边:向左取整,且当交点落在边界上时视做外部点

2025/3/514考虑到,为消除浮点数运算,以交点在左侧边为例,可增设计数器Counter,并改写交点公式为:扫描线与多边形边界线段交点的计算(3)下一个交点对应计算器的值为:Counter的初始值可以是:

2025/3/515仍以交点在左侧边为例。(1)判断Counter的值是否大于0(2)若不是,则直接取为xi;若是,则进行如下运算:此时,计数器刷新为:问题:交点在右侧边时的处理扫描线与多边形边界线段交点的计算(4)(3)上述步骤反复执行k次,直至Counter的值小于0,此时xi+k的值即为交点向右取整的结果。其截断部分仍是。

2025/3/516活性边表AET

(active-edgetable)引入如下的数据结构记录交点92092-5/211103/211130?P6P1P5P6P4P5P3P4Line9AETpointer1111.53/211130?P4P5P3P4Line10AETpointer引入Counter?92094.5-5/2118.53/211130?P6P1P5P6P4P5P3P4Line8AETpointer

2025/3/5170123456789101137-5/2573/2?920?11130?97-5/21173/2??????????边表(ET)的初始化

2025/3/518直线的扫描转换填充算法生成初始边表ET;把扫描线的y值设为ET的最小y坐标;AET初始化为空;循环直至满足终止条件:AET和ET为空从ET取值(满足ymin=y的线段)放到AET;从AET中删除满足y=ymax的线

文档评论(0)

zzqky + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档