计算机图形学_第五章_图形运算_107.pptx

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

韩志刚;第五章 图形运算;第五章 图形运算;第一节 二维图形交点计算;第一节 二维图形交点计算;一、两直线段之间的交点;一、两直线段之间的交点;一、两直线段之间的交点;二、直线段和圆弧之间的交点;二、直线段和圆弧之间的交点;一、两直线段之间的交点; 设有两段圆弧A,B。A圆弧的圆心坐标(xa,ya),半径为ra, B圆弧的圆心坐标(xb,yb),半径为rb。则有如下方程: 如果两圆相交,则应有: ;三、两圆弧之间的交点;一、两直线段之间的交点;四、给定一组直线段的交点计算;四、给定一组直线段的交点计算;第五章 图形运算;第二节 二维图形裁剪;第二节 二维图形裁剪;一、二维图形裁剪概述;裁剪的目的 判断图形元素是否落在裁剪区域之内,并找出其位于内部的部分 裁剪的处理基础 图元关于裁剪区域内外关系的判别 图元与裁剪区域的求交 裁剪的内容: ①图形在裁剪区域内的判断; ②求出图形与裁剪区域边界的交点; ③显示裁剪区域内的图形。;第一节 二维图形裁剪;二、点的裁剪;第一节 二维图形裁剪;裁剪线段与窗口的关系:(1)线段完全可见;(2)显然不可见;(3)其它 提高裁剪效率:快速判断情形(1)(2),对于情形(3),设法减少求交次数和每次求交时所需的计算量。;三、直线段裁剪;(一)直接求交算法;(一)直接求交算法;P0在窗口内部?;三、直线段裁剪;(二) Cohen-Sutherland算法;为快速判断,采用如下编码方法:; 将区域码的各位从左到右编号,则坐标区域与各位的关系为: 上 下 右 左 X X X X 在x=xl左侧的区域,编码的第四位是1; 在x=xr右侧的区域,编码的第三位是1; 在y=yb下侧的区域,编码的第二位是1; 在y=yt上侧的区域,编码的第一位是1 。; 一旦给定所有的线段端点的区域码,就可以快速判断哪条直线完全在裁剪窗口内,哪条直线完全在窗口外。判断规律如下: 若code1=0,且code2=0,则P1P2完全在窗口内“取” 若code1code2≠0,则P1P2明显在窗口外“弃” ;若code1≠0,或code2≠0,同时code1code2=0,则可能部分可见,也可能完全不可见。进行求交运算,在交点处把线段分为两段。其中一段完全在窗口外,可弃之???然后对另一段重复上述处理。;算法的步骤: (1)输入直线段的两端点坐标:p1(x1,y1)、p2(x2,y2),以及窗口的四条边界坐标:yt、yb、xl和xr。 (2)对p1、p2进行编码:点p1的编码为code1,点p2的编码为code2。 (3)若code1=0且code2=0,对直线段应简取之,转(6);否则,若code1code2≠0,对直线段可简弃之,转(7);当上述两条均不满足时,进行步骤(4)。 (4)确保p1在窗口外部:若p1在窗口内,则交换p1和p2的坐标值和编码。;算法的步骤: (5)按左、右、下、上的顺序求出直线段与窗口边界的交点,并用该交点的坐标值替换p1的坐标值。也即在交点s处把线段一分为二,考虑到p1是窗口外的一点,因此可以去掉p1s。转(2)。 (6)用直线扫描转换算法画出当前的直线段p1p2。 (7)算法结束。?;线段KL为例,从K点(1001)的编码分析出K在x=xL的左侧,KL必和x=xL有交点, 求出其交点M,KM显然是完全不可见的,因而只要对ML从第一步开始重复上述处理步骤。 由于ML还是不能用第一步下结论,又从M的编码发现M在y=yT的上侧,因而要求ML和y=yT的交点N。 丢掉MN,对NL用第一步的方法可断定NL为完全可见,至此裁剪结束。;函数Cohen_Sutherland用来实现算法 函数makecode用来编码,利用数值位运算实现;double xl, xr, yt, yb; (事先给出窗口的位置,四个数值是已知的);(二) Cohen-Sutherland算法;本算法的优点在于简单,易于实现。它可以简单的描述为将直线在窗口外侧的部分删去,按左,右,下,上的顺序依次进行,处理之后,剩余部分就是可见的了。在这个算法中求交点是很重要的,它决定了算法的速度。另外,本算法对于其它形状的窗口并不适用。 特点:用编码方法可快速判断线段的完全可见和显然不可见。;例子:考虑如下图所示的裁剪任务,用C-S裁剪算法完成裁剪过程。p1(-1/2,-1/2),p2(1/2,0);p3(7/6,-1/2),p4(3/2,1/2);p5(-3/2,1/6),p6(1/2,3/2);p7(-1/2,0), p8(3/2,1).;三、直线段裁剪;(三) 中点分割算法;从P0出发找距离

文档评论(0)

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

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

1亿VIP精品文档

相关文档