计算机图形学颜色填充,计算机图形学-- 多边形填充算法.ppt

计算机图形学-- 多边形填充算法

第4章 基本光栅图形生成算法 4.3 多边形的填充 4.3.1 多边形的表示方法 4.3.2 多边形填充的扫描线算法 算法特点: 奇点的处理 如果把每一奇点简单地计为一个交点,则交点个数可能出现奇数。若将每一奇点都简单地计为两个交点,同样会导致反常的结果 扫描线算法的数据结构和实现步骤 扫描线算法的数据结构 [P0P1P2P3P4P5 P6] =[(2,5) (2,10) (9,6) (16,11) (16,4) (12,2) (7,2)] [P0P1P2P3P4P5 P6] =[(2,5) (2,10) (9,6) (16,11) (16,4) (12,2) (7,2)] 扫描线算法实现步骤 步骤1:(AEL初始化)将边的活化链表AEL设置为空。 边的Y筒ET 边的活化链表 4.3.3 边缘填充算法 采用对图像进行逐位求反的方法,免去对边排序 的工作量 边缘填充算法的实现 对多边形P的每一非水平边(i=0,1,…,n)上的各像素 做向右求反运算即可 边界标志算法实例 第4章 基本光栅图形生成算法 4.4 区域填充 4.4.1 区域的基本概念 是指已经表示成点阵形式的像素集合。 4连通的区域: 取区域内任意两点,在该区域内若从其中一点出发通过上、下、左、右四种运动可到达另一点。 4.4.2 简单的种子填充算法 4.4.3 扫描线种子填充算法 从给定的种子点开始,填充当前扫描线上种子点所在的区间 算法步骤: 具体实现过程 第4章 简单光栅图形生成算法 4.5 光栅图形的反走样算法 4.5.1 光栅图形的走样现象 图形的边界呈阶梯形, 图形的细节失真, 狭小图形遗失 4.5.2 提高分辨率的反走样方法 提高分辨率的方法: 第4章 简单光栅图形生成算法 4.6 线画图元的属性控制 线宽控制 线宽控制 像素复制方法:产生具有宽度的线状图形,可以顺着扫描所生成的单像素线条轨迹,通过像素复制法来获得 优点: 实现简单 缺点: 线段两端要么为水平的,要么是竖直的 折线顶点处有缺口 图元的宽度不均匀 移动刷子 线型控制 线型控制 造成走样的原因:用离散量表示连续量引起的 因为直线、多边形、色彩边界等是连续的,而光栅图形则是由离散的像素点组成 常见走样形式 不光滑(阶梯状)的图形边界 图形细节失真 狭小图形的遗失 采用硬件: 采用高分辨率的光栅图形显示器,花费的代价大。 为了提高图形质量,需要克服或减少走样现象,减少这种 现象的算法,称为光栅图形的反走样算法 反走样算法: 采用软件: 花费的代价小,也容易实现。 1.从硬件角度提高分辨率 高分辨率显示器 显示器点距减少一倍 帧缓存容量增加到原来的4倍 输带宽提高4倍 扫描转换花4倍时间 代价高 2.从软件角度提高分辨率 高分辨率计算,低分辨率显示 像素细分技术,相当于后置滤波 1 1 1 1 算术平均 1 2 2 1 4 2 1 2 1 加权平均 只能减轻,不能消除 低分辨率显示:将一象素内的各个子象素的颜色值或灰度值的平均值作为该象素的颜色值或灰度值。求平均值时可取算术平均,也可取加权平均。 用软件提高分辨率的方法是: 高分辨率计算,低分辨率显示 高分辨率计算:将低分辨的图形显示象素划分为许多子象素, 如2×2划分,3×3划分等,然后按通常的算法计算出各个子 象素的颜色值或灰度值。 3.区域采样技术(多边形反走样) 改变边或直线的外观,模糊淡化阶梯 相当于图像的前置滤波 点 有限区域 直线有宽度 根据相交的面积值决定像素显示的亮度级别 8级灰度 0≤面积≤1/8 7/8≤面积≤1 (a) (b) (c) 0 1 2 3 4 1 2 2 3 3 4 3 4 0 边缘填充算法分析 优点: 最适合于有帧缓存的显示器 可按任意顺序处理多边形的边 仅访问与该边有交点的扫描线上右方的像素,算法简单 缺点: 对复杂图形,每一像素可能被访问多次,输入/输出量大 图形输出不能与扫描同步进行,只有全部画完才能打印 4.3.4 栅栏填充算法 此算法是为了减少边缘算法访问像素的次数而提出的 栅栏: 是一条与扫描线垂直的直线,栅栏的位置通常取过多边形顶点,能把多边形分为左右两半 栅栏填充的基本思想: 对于每个扫描线与多边形边的交点,就将交点与栅栏之间的像素取补. 若交点位于栅栏左边,则将交点之右,栅栏之左的所有像素取补 若交点位于栅栏右边,则将交点之左,栅栏之右的所有像素取补 栅栏填充的具体实现: 0 1 2 3 4 栅栏线 1 2 栅栏线 3 4 栅栏线 2 3 栅栏线 4 栅栏线 0 边界标志法: 先画边界后填色,使对帧缓冲器中的每个元素的赋值次数不超过2次。 基本思想是:先用一种特殊的颜色在帧缓冲器中将多边形的边界(水平边的部分边界除外)勾画出来。

你可能感兴趣的:(计算机图形学颜色填充)