- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 填充图元
第四章 填充图元的生成 ? 扫描转换矩形 ? 扫描转换多边形 ? 扫描转换扇形区域 ? 区域填充 ? 以图像填充区域 ? 字符的表示与输出 一般步骤 1、确定那些像素位于填充图元的内部 2、确定以什么颜色填充这些像素 实验二 1、实现多边形的扫描线算法(必做) 2、区域填充的扫描线算法(选做) 3、四连通或八连通的区域填充递归算法 ? 区域填充 将指定的颜色从种子点扩展到整个区域的过程 ? 连通性:4连通、8连通 ? 4连通 ? 8连通 ? 4连通区域与8连通区域的区别 像素间的相邻关系不同 对边界的连通性要求不同 ? 递归填充算法 内点表示的 4 连通区域 边界表示的 4 连通区域 内点表示与边界表示的 8 连通区域填充算法 算法原理与 4 连通的情形基本相同,只要将相应代码中递归填充相邻的 4 个像素增加到 8 个像素即可 递归填充算法的特点 算法、程序简单 递归层次太多,效率极低 ? 扫描线填充算法 目标:减少递归层次 步骤: 填充并确定种子取段; 初始化:将种子区段压入堆栈; 出栈:如果堆栈为空,则算法结束; 否则取栈顶元素 (y, xLeft, xRight), 以纵坐标为 y 的扫描线为当前扫描线, [xLeft, yLeft]为搜索区间; 填充并确定新的区段。 四种填充方法: (1)均匀着色方法:将图元内部像素置成同一颜色 (2)位图不透明:若像素对应的位图单元为1,则以前景色显示该像素;若为0,则以背景色显示该像素; (3)位图透明:若像素对应的位图单元为1,则以前景色显示该像素;若为0,则不做任何处理。 (4)像素图填充:以像素对应的像素图单元的颜色值显示该像素。 4.5 以图像填充区域 ? 基本问题 建立绘图空间与图像(纹理)空间的将1-1映射 ? 方法1:建立整个绘图空间与图像空间的1-1映射 图像(纹理) * * 4.1 扫描转换矩形 ? 方法: ? 问题: 矩形是简单的多边形,为何要单独处理矩形? 矩形填充算法简单,矩形填充在窗口系统中应用最多 共享边界如何处理? 原则:左闭右开,下闭上开 属于哪个矩形? 4.2 扫描转换多边形 ? 多边形的表示方法 顶点表示 点阵表示 ? 扫描转换多边形:将顶点表示的形式转换成点阵表示形式 4.2.1 逐点判别算法 方法 问题:如何判别点(x , y)关于多边形区域 P 的内外关系? 主要有:射线法,累计角度法,编码方法 1、射线法 步骤: 从待判别点 v 发出射线,求交点个数 k k的奇偶性决定了点与多边形的内外关系 若k为奇数,则v位于多边形P内;若k为偶数,则v在多边形P之外 奇异情况处理 避免射线与多边形的顶点相交(如射线通过某边的中点) 2、累计角度法 步骤: 1、从 v 点向多边形 P 顶点发出射线,形成有向角θi 2、计算有向角的和,则有 奇异情况处理 先处理 v 落在边上的情形(内或外) 3、编码方法 累计角度法的离散方法 建立以v为原点的局部坐标系 建立多边形顶点及各边的编码 根据编码的累加值,确定v是 落在多边形的内部还是外部 (1)预处理,测试点在边上否? (2)V为原点作局部坐标系,对象限按逆时针(或顺时针)编码; (3)顶点编码 , (4)边编码。PiPi+1: △PiPi+1=Ipi+1-Ipi (5)计算∑ △PiPi+1 (其中△PnPn+1 = △PnP0): 若 ∑ 为0, V在P外; 若 ∑ 为+/-4,V 在P内; 例题1 例题2 逐点判别算法 优点:简单 缺点:计算量太大,速度慢,未考虑像素间的连贯性 4.2.2 扫描线算法 目标:利用像素之间的连贯性,提高算法效率 处理对象:非自交多边形 凸多边形是指任意两顶点间的连线均在多边形内; 凹多边形是指任意两顶点间的连线有不在多边形内的部分; 含内环的多边形则是指多边形内再套有多边形,多边形内的多边形也叫内环,内环之间不能相交 1、基本原理 一条扫描线与多边形的边有偶数个交点(扫描线的连贯性) 特殊情形:扫描线与顶点相交 步骤: (1) 求扫描线与多边形各边的交点 (2) 对所求得的交点按x坐标
文档评论(0)