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

基本图形生成算法.pptxVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

计算机图形学与数字地图第4章基本图形生成算法Email:余接情

4.4区域的生成区域的表示

多边形有两种重要的表示方法:顶点表示和点阵表示。顶点表示?点阵表示:通过扫描转换实现,(边界表示、内点表示)。用于图形显示、矢量数据栅格化。点阵表示?顶点表示:通过边界提取实现(模式识别),用于图形表示、建模,栅格数据矢量化。

凸多边形 凹多边形 环状多边形多边形分为三种:凸多边形、凹多边形、含内环的多边形。多边形扫描转换算法对多边形的形状没有限制,但多边形的边界不自交。4.4区域的生成

4.4区域的生成多边形区域的生成过程多边形顶点坐标序列区域(边界表示)直线的扫描转换扫描转换区域填充区域(内点表示)扫描转换:按扫描线的顺序确定一点是否位于区域内部,再用要求的显示属性显示该像素区域填充:则是指先将在点阵表示的多边形区域内的一点(称为种子点)赋予指定的颜色和灰度,然后将这种颜色和灰度扩展到整个区域内的过程。

扫描线算法边填充算法边界标志算法简单种子填充算法扫描线种子填充算法图案填充算法扫描转换算法区域填充算法4.4区域的生成

扫描线算法原理:建立在图形的空间联惯性和扫描线的连惯性基础上,推广计算图形封闭区域边界与扫描线交点,将扫描线分成区间,并对区间进行填充总体思路:算出交点;划分区间;分配颜色步骤:对每条扫描线分为4步(以扫描线6为例)(1)求交点,即计算该扫描线与多边形各边的交点;(2)排序,由于交点不一定由左到右求出,因此将求出的交点按x坐标值排序;(3)交点配对,1与2,3与4,……,每对表示一个区间;(4)把相交区间内的象素置成多边形颜色,把相交区间外的象素置成背景色。9912345687100018764532111234

扫描线算法顶点交点的取舍分3种情况:1)共享顶点的两条边分别落于扫描线的两侧,这时交点算一个,如F,D。2)共享顶点的两条边位于扫描线同一侧,且该顶点为局部最低点,则算2个,如B、E。3)共享顶点的两条边位于扫描线同一侧,且该顶点为局部最高点,则算0个,如A、C。具体实现时,则检查顶点与相连两条边的另外两个端点的Y值的关系来判断。9912345687100018764532110次0次0或2次1次2次1次ABCDEF

扫描线算法处理一条扫描线时,只需与相交的边进行求交运算。由于边的连续性,某条边与当前扫描线相交时,则很可能也与下一条扫描线相交。为此,下一条扫描的交点可通过当前扫描线交点加上一个反斜率即可,即:Xk+1=Xk+1/m(m为斜率)991234568710001876453211ABCDEF通常将与当前扫描线相交的边称为活化边,并按它们与扫描线交点x坐标递增的顺序存放在一个链表中,该链表被称为活化边表(ActiveEdgeTable)

扫描线算法991234568710001876453211P6P5P4P3P2P1xdxyMaxLink活性边表结构交点x值1/m边最高扫描线号指针2073.5-1.577281108^6P6P1P5P6P4P5P37P4P5P3P4

扫描线算法991234568710001876453211P6P5P4P3P2P1xdxyMaxLink新边表结构左边低端x值1/m边最高扫描线号指针5-32P1P2P2P38^7^6^54^3210^533^207^P0P11108^P3P4528P4P5P5P65-1.57^扫描线号

当沿扫描线号从小到大的顺序依次处理时,随时准备为每一条扫描线建立一个活化边表。如果扫描线的y值正好与某边的较低端点的ymin值相等,则开始从新边表将该边调入活化边表,然后随着扫描线的变化不断更新活化边。更新:加上dx(求交),或插入新边,或剔除不再相交边(扫描线号=ymax)排序、交点配对、填充活化边的建立与更新基于有序边表的建立。算法过程:扫描线算法

扫描线算法^8765432105-32533^207833^2072072072079281108^1108^5283.5-1.571108^5-1.577281108^1108^(9,11)(2,11)(2,11)(2,8)(5,5)(2,3.5,7,11)(2,5,5,11)扫描线号扫描线算法是一种非常有效多边形扫描转换算法,它使所显示的象素只访问一次,因而输入/输出的要求低,但须对表进行维持和排序操作,不适合硬件实现。

扫描线算法voidpolyfill(polygon,color){ for(各条扫描线i) { 初始化新边表头指针NET[i]; 把ymin=i的边放进边表NET[i]; } y=最低扫描线号; 初始化活性边表AET为空; fo

文档评论(0)

136****0775 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档