- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
chapter2_123_计算机图形学
圆被定义为到给定中心位置(xc,yc)距离为r的点集。圆心位于原点的圆有四条对称轴x=0,y=0,x=y和x=-y。若已知圆弧上一点(x,y),可以得到其关于四条对称轴的其它7个点,这种性质称为圆的八对称性。因此,只要扫描转换八分之一圆弧,就可以求出整个圆弧的象素集。 * * * 有一个程序演示 * * 在计算机图形学中,多边形有两种重要的表示方法:顶点表示和点阵表示。顶点表示是用多边形的顶点序列来表示多边形。这种表示直观、几何意义强、占内存少,易于进行几何变换,但由于它没有明确指出哪些象素在多边形内,故不能直接用于面着色;点阵表示是用位于多边形内的象素集合来刻画多边形。这种表示丢失了许多几何信息,但便于帧缓冲器表示图形,是面着色所需要的图形表示形式。光栅图形的一个基本问题是把多边形的顶点表示转换为点阵表示,这种转换称为多边形的扫描转换。 * ① 凸凸多边形: ② 凹多边形 ③ 含内环的多边形 任意两顶点间的 任意两顶点间的 连线均在多边形 连线有不在多边 内 形内的部分 ? * 扫描线多边形区域填充算法是按扫描线顺序,计算扫描线与多边形的相交区间,再用要求的颜色显示这些区间的象素,即完成填充工作。区间的端点可以通过计算扫描线与多边形边界线的交点获得。对于一条扫描线,多边形的填充过程可以分为四个步骤: (1)求交:计算扫描线与多边形各边的交点; (2)排序:把所有交点按x值递增顺序排序; (3)配对:第一个与第二个,第三个与第四个等等;每对交点代表扫描线与多边形的一个相交区间, (4)填色:把相交区间内的象素置成多边形颜色,把相交区间外的象素置成背景色。 * * 为了提高效率,在处理一条扫描线时,仅对与它相交的多边形的边进行求交运算。我们把与当前扫描线相交的边称为活性边,并把它们按与扫描线交点x坐标递增的顺序存放在一个链表中,称此链表为活性边表(AET)。 * 扫描线6和扫描线7的活性边表 * 为了方便活性边表的建立与更新,我们为每一条扫描线建立一个新边表(NET),存放在该扫描线第一次出现的边。也就是说,若某边的较低端点为ymin,则该边就放在扫描线ymin的新边表中。 * * 扫描线与多边形顶点相交时,必须正确地取舍交点,如图2.3.5所示。 · ? 扫描线与多边形相交的边分别位于扫描线的两侧,则计一个交点,如点P5,P6。 ·?? 扫描线与多边形相交的边分别位于扫描线同侧,且 yiyi-1,yiyi+1,则计2个交点(填色),如P2。若 yiyi-1,yiyi+1,则计0个交点(不填色),如P1。 ·?? 扫描线与多边形边界重合 (当要区分边界和边界内区域时需特殊处理),则计1个交点。 ? 具体实现时,只需检查顶点的两条边的另外两个端点的y值。按这两个y值中大于交点y值的个数是0,1,2来决定。 * * 这里需要说明一下,自交多边形 * * * * * * 以上讨论的多边形填充算法是按扫描线顺序进行的。种子填充算法假设在多边形内有一象素已知,由此出发利用连通性找到区域内的所有象素。 设(x,y)为内点表示的4连通区域内的一点,oldcolor为区域的原色,要将整个区域填充为新的颜色newcolor。内点表示的4连通区域的递归填充算法: * 黑板演示一下八连通 * 区域填充的递归算法原理和程序都很简单,但由于多次递归,费时、费内存,效率不高。为了减少递归次数,提高效率可以采用采用扫描线算法。算法的基本过程如下:当给定种子点(x,y)时,首先填充种子点所在扫描线上的位于给定区域的一个区段,然后确定与这一区段相连通的上、下两条扫描线上位于给定区域内的区段,并依次保存下来。反复这个过程,直到填充结束。 * 给个图示说明。并指出压入最左边也是一样的 Linefill demo 有一个swf * * * 清华大学计算机科学与技术系 计算机图形学基础 2.3.2.2区域填充的扫描线算法 算法步骤: 首先填充种子点所在扫描线上的位于给定区域的一个区段 然后确定与这一区段相连通的上、下两条扫描线上位于给定区域内的区段,并依次保存下来。 反复这个过程,直到填充结束。 清华大学计算机科学与技术系 计算机图形学基础 (1)初始化:堆栈置空。将种子点(x,y)入栈。 (2)出栈:若栈空则结束。否则取栈顶元素(x,y),以y作为当前扫描线。 (3)填充并确定种子点所在区段:从种子点(x,y)出发,沿当前扫描线向左、右两个方向填充,直到边界。分别标记区段的左、右端点坐标为xl和xr。 (4)并确定新的种子点:在区间[xl,xr]中检查与当前扫描线y上、下相邻的两条扫描线上的象素
您可能关注的文档
最近下载
- 《屈原列传》挖空练习.doc VIP
- 渝20J08 薄层砂浆砌筑混凝土复合自保温砌块建筑构造 DJBT 50-141.pdf VIP
- 铜仁职业技术大学《高等数学(3)》2025 - 2026学年第一学期期末试卷(A卷).docx VIP
- 317家建企取得环保工程专业承包一级资质.docx VIP
- (地层学课件)第十二章 磁性地层学.ppt
- 2025年实习律师助理合同协议.docx VIP
- 无人机设计导论(南航)中国大学MOOC慕课 章节测验期末考试答案.pdf VIP
- 2018沪G504 钢筋混凝土锚杆静压桩和钢管锚杆静压桩 清晰版图集.pdf
- 抖音汽车内容生态研究报告.pdf VIP
- 湖北理工学院《高等数学A》2025-2026学年期末考试试卷(A)卷.docx VIP
原创力文档


文档评论(0)