计算机图形学应用基础第四章光栅转化与消隐(一).ppt

计算机图形学应用基础第四章光栅转化与消隐(一).ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2008.9.25 图形的光栅转化 内容 基本概念 区域填充 多边形的扫描转换 多边形的扫描转换与区域填充的比较 内容 基本概念 区域填充 多边形的扫描转换 多边形的扫描转换与区域填充的比较 光栅图形的基本概念 关于光栅图形 本质:点阵表示 特点:面着色,画面明暗自然、色彩丰富 与线框图相比:更加生动、直观、真实感强 光栅图形的基本概念 光栅图形的基本概念 关于平面多边形 图形学中的多边形:无自相交的简单多边形 图形学中多边形的两种表示方式 顶点表示:用多边形的有序顶点序列表示多边形 点阵表示:用位于多边形内部的像素集合来表示多边形 顶点表示 优点 直观 几何意义明显 存贮量小 不足 难以判断哪些像素位于多边形内部 不能直接用于多边形着色 点阵表示 优点 便于用帧缓冲器(frame buffer)表示图形 面着色所需的图形表示 缺点 丢失了几何信息 占用存储空间多 多边形的扫描转换 多边形的扫描转换:把顶点表示转换为点阵表示 从多边形的给定边界出发,求出其内部的各个像素 并给帧缓冲器中各个对应元素设置相应灰度或颜色 主要内容 基本概念 区域填充 四连通区域和八连通区域 连通区域的种子填充算法 多边形的扫描转换 多边形的扫描转换与区域填充的比较 点阵表示的区域填充 区域的定义:已经表示成点阵的像素集合 区域的表示: 内部表示:把给定区域内的像素枚举出来 区域内所有像素都着同一种颜色 区域边界像素不能着上述颜色 边界表示:把区域边界上的像素枚举出来 边界上所有像素都着同一种颜色 区域内部像素不能着上述颜色 区域表示 内部表示 边界表示 区域的类型 四连通邻域 八连通邻域 区域的类型 四连通区域:区域内任意两个像素,从一个像素出发,可以通过上、下、左、右四种运动,到达另一个像素 八连通区域:区域内任意两个像素,从一个像素出发,可以通过水平、垂直、正对角线、反对角线八种运动,到达另一个像素 区域的类型 区域的类型 四连通区域实例 八连通区域实例 区域的类型 四连通和八连通区域的关系 四连通区域 ? 八连通区域 (反之不成立) 四连通区域的边界是八连通区域 八连通区域的边界是四连通区域 内部表示区域种子填充算法 假设内部表示区域为G,其中的像素原有颜色为G0,需要填充的颜色为G1。 算法需要提供一个种子点(x,y),它的颜色为G0。 具体算法如下(四连通区域) 内部表示区域种子填充算法 Flood_Fill_4(x, y, G0, G1) { if(GetPixel(x,y) ==G0 ) // GetPixel(x,y) 返回(x,y)的颜色 { SetPixel(x, y, G1); //将(x,y)的添上颜色G1 Flood_Fill_4(x-1, y, G0, G1); Flood_Fill_4(x, y+1, G0, G1); Flood_Fill_4(x+1, y, G0, G1); Flood_Fill_4(x, y-1, G0, G1); } } 边界表示区域种子填充算法 Fill_Boundary_4_Connnected(x, y, BoundaryColor, InteriorColor) // (x,y) 种子像素的坐标; // BoundaryColor 边界像素颜色; InteriorColor 需要填充的内部像素颜色 { if(GetPixel(x,y) != BoundaryColor && GetPixel(x,y)!= InteriorColor ) // GetPixel(x,y): 返回像素(x,y)颜色 { SetPixel(x, y, InteriorColor); // 将像素(x, y)置成填充颜色 Fill_Boundary_4Connnected(x, y+1, BoundaryColor, InteriorColor); Fill_Boundary_4Connnected(x, y-1, BoundaryColor, InteriorColor); Fill_Boundary_4Connnected(x-1, y, BoundaryColor, InteriorColor); Fill_Boundary_4Connnected(x+1, y, BoundaryColor, InteriorColor); } } 内容 基本概念 区域填充 多边形的扫描转换 逐点判断算法 扫描线算法 连贯性概念:区域、扫描线、边 奇异点的处理 算法的数据结构与实现 多边形的扫描转换与区域填充的比较 逐点判断算法 逐点判断算法:逐个像素判别其是否位于多边形内部 判断一个点是否位于多边形内部:射线法 从当

文档评论(0)

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

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

1亿VIP精品文档

相关文档