基本图形生成与算法.ppt

  1. 1、本文档共162页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图形的扫描转换(光栅化)分为二个步骤: 1、确定有关像素 2、用图形的颜色或其它属性,对像素进行写操作。 对一维图形,不考虑线宽,则用一个像素宽的直线来显示图形。二维图形的光栅化,即区域的填充。确定像素集,填色或图案。 任何图形的光栅化,必须显示在一个窗口内,否则不予显示。即确定一个图形的哪些部分在窗口内,哪些在窗口外,即裁剪。 图形显示前需要:扫描转换+裁剪 确定待填充的象素,即检查光栅的每一像素是否位于多边形区域内 扫描线填色与种子填色方法比较 联系:都是光栅图形面着色,用于真实感图形显示。可相互转换。 扫描线填色转化为种子填色问题:当给定多边形内一点为种子点,并用Bresenham或DDA算法将多边形的边界表示成八连通区域后,则扫描线填色转化为种子填色。 种子填色转化为扫描线填色;若已知给定多边形的顶点,则种子填色转化为扫描线填色。 扫描线填色与种子填色方法比较 不同点: 1.基本思想不同;前者是顶点表示转换成点阵表示,后者只改变区域内填充颜色,没有改变表示方法。 2.对边界的要求不同 前者只要求扫描线与多边形边界交点个数为偶数。后者:区域封闭,防止递归填充跨界。 3.基本的条件不同 前者:从边界顶点信息出发。 后者:区域内种子点。 字符属性 Cohen-Sutherland算法——C语言程序 Cohen-Sutherland算法——C语言程序 Cohen-Sutherland算法——C语言程序 Cohen-Sutherland算法——C语言程序 Sutherland-Hodgeman算法—逐次多边形裁剪算法 基本思想是一次用窗口的一条边裁剪多边形。 考虑窗口的一条边以及延长线构成的裁剪线该线把平面分成两个部分:可见一侧;不可见一侧 多边形的各条边的两端点S、P。它们与裁剪线的位置关系只有四种 情况(1)仅输出顶点P; 情况(2)输出0个顶点; 情况(3)输出线段SP与裁剪线的交点I; 情况(4)输出线段SP与裁剪线的交点I和终点P Sutherland-Hodgeman算法—逐次多边形裁剪算法(续) Sutherland-Hodgeman算法—逐次多边形裁剪算法(续) 2.7反走样 走样现象举例 不光滑(阶梯状)的图形边界 走样现象举例 图形细节失真 走样现象举例 狭小图形的遗失与动态图形的闪烁 反走样—提高分辩率 提高分辨率 方法简单,但代价非常大。显示器的水平、竖直分辩率各提高一倍,则显示器的点距减少一倍,帧缓存容量则增加到原来的4倍,而扫描转换同样大小的图元却要花4倍时间。 而且它也只能减轻而不能消除锯齿问题 另一种方法(软件方法): 用较高的分辨率的显示模式下计算,(对各自像属下计算,再求(非)加权平均的颜色值),在较低的分辨率模式下显示。只能减轻而不能消除锯齿问题。 软件方法1 把每个像素分为四个子像素,扫描转换算法求得各子像素的灰度值,然后对四像素的灰度值简单平均,作为该像素的灰度值。 软件方法2 设分辨率为m?n,把显示窗口分为(2m+1)?(2n+1)个子像素,对每个子像素进行灰度值计算,然后根据权值表所规定的权值,对位于像素中心及四周的九个子像素加权平均,作为显示像素的颜色。 设m=4,n=3 简单区域取样 方法由来 两点假设 1、象素是数学上抽象的点,它的面积为0,它的亮度由覆盖该点的图形的亮度所决定; 2、直线段是数学上抽象直线段,它的宽度为0。 现实 像素的面积不为0; 直线段的宽度至少为1个像素; 假设与现实的矛盾是导致混淆出现的原因之一 简单区域取样 解决方法:改变直线段模型,由此产生算法 方法步骤: 简单区域取样 基本思想: 每个象素是一个具有一定面积的小区域,将直线段看作具有一定宽度的狭长矩形。当直线段与象素有交时,求出两者相交区域的面积,然后根据相交区域面积的大小确定该象素的亮度值。 简单区域取样 面积计算 情况⑴(5)阴影面积为:1/2*D*D/m=D2/2m; 情况⑵(4)阴影面积为:D - m/2; 情况⑶阴影面积为:1 - D2/m 简单区域取样 求相交区域的近似面积的离散计算方法 简单区域取样 简单区域取样采用的是一个盒式滤波器,它是一个二维加权函数,以w表示。 w =1 若在当前像素所代表的正方形上 w =0 其它区域上 直线条经过该像素时,该像素的灰度值可以通过在像素与直线条的相交区域上对w求积分获得。 此时,面积值=体积值 加权区域取样 采用圆锥形滤波器,圆锥的底圆中心在当前像素,底圆半径为一个像素,锥高为1。当直线条经过该像素时,该像素的灰度值是在二者相交区域上对滤波器进行积分的

文档评论(0)

天马行空 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档