工程计算机图形学第六章图形学裁剪算法.pptVIP

工程计算机图形学第六章图形学裁剪算法.ppt

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

45°的直线的斜率k为1 y=x+b ,消去了乘法运算 包围盒编码取舍线段 (1)常规包围盒一次编码取舍线段 位置关系可转化为6位二进制代码表示,从高位到低位,依次表示的方位为上、下、右、左、后、前。 (2)新型包围盒二次编码舍弃线段 (3)包围盒与线段分类 浙江大学工程及计算机图学所 * 6.5三维立方体的线裁剪 图6-5-1 包围盒编码取舍线段 Y Z X (1) 常规包围盒编码分区 8个角域,12个边域和6个面域以及1个窗体 , 有三位为1,属于角域,二位为1,则属于边域,一位为1,属于面域。 采用移位运算符(和)判断高位或低位是否为1 。 (2)基于编码分区的几何变换求交 任何一个区域经过适当的几何变换, 最终都可以映射到三个基本区域中去。 通过线段端点编码与裁剪窗体各个面逻辑与()运算,如果所得值为真,则与此面求交,通过逐一求交并比较排除冗余交点,最终确定唯一有效交点。 浙江大学工程及计算机图学所 * 图6-5-2 6.5三维立方体的线裁剪 * 多次编码技术 c b a x y z 二次编码技术以450静态窗口对线段进行过滤,为了扩展动态范围滤除更多窗外线段,可以采用多次编码技术。 基于窗口变换的过滤技术的选取课选择合适的窗型。 * 浙江大学工程及计算机图学所 图6-1-24 6.1.6传统算法拓展 6.2 多边形窗口线裁剪 参数化算法(Cyrus-Beck) 算法拓展: 多边形顶点编码裁剪算法 * 浙江大学工程及计算机图学所 考虑凸多边形区域R和直线段P1P2 P(t)=(P2-P1)*t+P1 设A是区域R的边界上一点, N是区域边界在A点的内法线向量 P2 A R N P1 则对于线段P1P2上任一点P(t) N ·(P(t)-A)0 - 外侧 N ·(P(t)-A)0 - 内侧 N ·(P(t)-A)=0 - 边界或其延长线上 * 浙江大学工程及计算机图学所 6.2.1参数化算法(Cyrus-Beck) 图6-2-1 k条边的多边形,可见线段参数区间的解: Ni· (p(t)-Ai)=0, i=0,…,k, 0≤t ≤1. 代入P(t)=(P2-P1)*t+P1 得: Ni· (P1-Ai)+ Ni· (P2-P1) t=0 * 浙江大学工程及计算机图学所 6.2.1参数化算法(Cyrus-Beck) Ni· (P2-P1) =0 则线段平行于对应边。 此时判断Ni· (P1-Ai) 若Ni· (P1-Ai) 0 则P1 P2在多边形外侧,不可见; 若Ni· (P1-Ai) 0 则P1 P2在多边形内侧,继续其它边的判断。 * 浙江大学工程及计算机图学所 6.2.1参数化算法(Cyrus-Beck) 图6-2-2 对于t值的选择:首先,要符合0≤t≤1;其次,对于凸窗口来说,每一个线段与其至多有两个交点,即有两个相应的t值。所以我们可以把计算出的t值分成两组:一组为下限组,是分布在线段起点一侧的;一组为上限组,是分布在线段终点一侧的。这样,只要找出下限组中的最大值及上限组中的最小值,就可确定线段了。 分组的依据是: 如果Ni· (P2-P1) <0,则计算出的值属于上限组 如果Ni· (P2-P1) >0,则计算出的值属于下限组 浙江大学工程及计算机图学所 * 6.2.1参数化算法(Cyrus-Beck) 因此,线段可见的交点参数: tl=max{0,max{ti: Ni· (P2-P1) 0}} tu=min{1,min{ti: Ni· (P2-P1)0}} 若 tl = tu, [tl , tu]是可见线段的交点参数区间,否则,线段不可见。 浙江大学工程及计算机图学所 * 6.2.1参数化算法(Cyrus-Beck) 对于多边形窗口的裁剪,关键是能否快速的判断出窗口边界是否与被裁直线存在交点。 基于多边形窗口分区编码的裁剪算法,该算法首先以被裁剪直线为参照系,将多边形窗口划分为正区、负区和近零区三类区域;然后通过对多边形窗口顶点的编码来快速地求出交点。 浙江大学工程及计算机图学所 * 6.2.2算法拓展 (1)对多边形窗口分区 浙江大学工程及计算机图学所 * 图6-2-3 6.2.2算法拓展 (2)对多边形窗口顶点编码 顶点落在负区 则 fi = -1; 顶点落在负区 则 fi = 1; 顶点落在近零区 方程 判断 浙江大学工程及计算机图学所 * 6.2.2算法拓展 图6-2-4 (3)快速裁剪 基于裁剪直线的窗口顶点编码技术 极限点位置判断法 编码之和判断法 若满足(1)式,则窗口边与被裁剪直线不相交;若满足(2)式,则窗口边与被裁剪直线存在交点;若满足(3)式,则窗口边或顶点与被裁剪

文档评论(0)

suijiazhuang1 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档