[工学]中山大学周凡老师计算机图形学课件Lecture 4.ppt

[工学]中山大学周凡老师计算机图形学课件Lecture 4.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]中山大学周凡老师计算机图形学课件Lecture 4

计算机图形学 多边形的填充 1:多边形的扫描转换 2:多边形的区域填充 3:光栅图形的反走样算法 1.多边形的扫描转换 1.1 扫描转换 计算机生成的物体常常可以用若干多边形来描述,有些非多边形的物体,也可以用多边形来逼近。在计算机图形学中,多边形有两种重要的表示方法:顶点表示和点阵表示。 顶点表示是用多边形的顶点序列来刻划多边形。这种方式直观,几何意义强,占用内存少,但不能直接用于面着色。 点阵表示是用位于多边形内的象素的集合来刻划多边形。这种方法虽然失去了很多重要的几何信息,但便于运用帧缓冲器表示图形,是面着色所需要的图形表示形式。 顶点表示的多边形 点阵表示的多边形 光栅图形的一个基本问题就是把多边形的顶点表示转换成为点阵表示,也就是从多边形的给定边界出发,求出位于其内部的各个象素,并给帧缓冲器内部的各个对应元素设置相应的灰度和颜色,通常这种转换称为“多边形的扫描转换”。 多边形的扫描转换过程,实际上就是给多边形包围的区域着色的过程,因此是一种面着色的方法。 扫描转换的常用算法 逐点判断算法 扫描线算法 边缘填充算法 边界标志算法 1.2 逐点判断算法 思想:逐个象素判别,确定它们是否在多边形内部,从而给出位于多边形内的点(象素)的集合。 难点:如何确定一个点是否在多边形内部? 点是否在多边形内部的检验 为了对多边形内部的象素点赋值,首先要解决如何判断一个点是否在多边形内部。 判断的方法是,先在多边形外部找一个点,然后用线段连接此点和有疑问的点,计算出此线段与多边形边界相交的次数,如果交点的数目为奇数,则疑问点在多边形内部;如果为偶数,此点在多边形外部。 图例 图例 需要注意的问题 在计算交点时,如果交点恰恰就是多边形的顶 点,必须小心处理,即要观察在此顶点相遇的两条 边,如果这两条边的其余两个顶点在新构成线段的同 一侧,应认为此线段与多边形相交二次;若多边形两 条边的其余两个顶点在新线段的异侧,则认为此线段 与多边形相交一次(奇点的处理)。 算法的实现 现设P=P0P1…PnP0为一给定的多边形。Framebuffer(x,y)是与点(x,y)相对应的帧缓冲器中的元素。则逐点判断的算法可以表示成为如下的程序: for y:= screen-ymin to screen-ymax do for x:= screen-xmin to screen-xmax do if inside(p, x, y) then setpixel(framebuffer, x, y, polygon-color) else setpixel(framebuffer, x, y, back-color); 逐点判断的算法虽然程序简单,但是不可取。原因是速度太慢,该算法割断了各个象素之间的联系,孤立的考察各个象素和多边形P的内外关系,使得几十万甚至几百万个象素都要一一判别,每次判别都要多次求交点,需要做大量的乘除运算,花费大量的时间。 1.3 扫描线算法 扫描线算法是多边形扫描转换的常用方法。相比起逐点判断算法,扫描线算法充分利用了象素之间的连贯性,避免的对象素的逐点判断和反复求交的过程。 扫描线算法综合利用了区域的连贯性,扫描线连贯性和边的连贯性等三种形式的连贯性。 区域的连贯性 梯形的两底边分别在y=yk和y=yk+1两条扫描线上,腰在多边形P的边上和显示屏幕的边界上; 这些梯形可以分为两类,一类在多边形P的内部,一类在多边形P的外部; 两类梯形在长方形区域{yk , yk+1}内相间的排列,即相邻的两个梯形必有一个在多边形P内,另一个在P外; 根据这些性质,实际上只要知道该长方形区域内任一梯形内一点关于多边形P的内外关系后,整个梯形内关于多边形P的内外关系就可以确定了。 扫描线的连贯性 L是偶数; 该扫描线上,区段(Xk, Xk+1),k=1,3,5…位于多边形P内部,其余区段都在多边形P外。两类区段沿扫描线相间排列。 奇点的处理 当扫描线与多边形P的交点是P的顶点时,则称该交点为奇点; 为了保证每一条扫描线和多边形P边界的交点个数为偶数,现将奇点分为极值点和非极值点两类:如果 ,则顶点Pi 为极值点,否则为非极值点; 现规定当奇点是P的极值点时,该点按照两个交点计算;否则按照一个交点计算。 边的连贯性 设d为一整数,d=e-1。若多边形P的边Pr-1Pr与扫描

文档评论(0)

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

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

1亿VIP精品文档

相关文档