计算机图形学3-2.ppt

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

x=x1+(x2-x1)*(YT-y1)/(y2-y1); } if(code ==code1) { x1=x;y1=y; code1 =encode(x,y); } else { x2=x;y2=y; code2 =encode(x,y); } } displayline(x1,y1,x2,y2); //线段位于窗口内 } 基本思想: 与前一种Cohen-Sutherland算法一样首先对线段端点进行编码,并把线段与窗口的关系分为三种情况: 全在、完全不在和线段和窗口有交。对前两种情况,进行一样的处理。 对于第三种情况,用中点分割的方法求出线段与窗口的交点。 中点分割裁剪算法 从p1出发找最近可见点的方法: 先求出p1p2的中点pm 若p1pm不是显然不可见的,并且p1pm在窗口中有可见部分,则距p1最近的可见点一定落在p1pm上,所以用p1pm代替p1p2.。否则取pmp2代替p1p2 p1 p2 Pm A B A、B分别为距p1、p2最近的可见点,Pm为p1p2中点 再对新的p1p2求中点pm。重复上述过程,直到p1pm长度小于给定的控制常数为止,此时pm收敛于交点 中点分割裁剪算法 从p2出发找最近可见点采用上面类似方法。 软件实现:两遍对半查找 硬件实现:可并行处理 中点分割裁剪算法 P1可见否? P1P2显然不可见 Pm = (p1+p2)/2 |Pm - P1|ε? P1Pm显然不可见? P1 = Pm P2 = Pm 否 否 否 是 P1 = Pm 原线完全不可见 P1 = P1 exit exit exit 是 是 是 否 中点分割裁剪算法 特点:可对任意凸多边形窗口实现二维和三维裁剪 考虑一个凸多边形 R 和一个线段 P1P2, P1 P2 与 R 最多只有两个交点 设 A 是 R 边界上一点,N 是该区域边界 在 A 点的内法向量 将P1 P2用参数方程表示:P(t) = (P2-P1) t + P1,则线段上任一点P(t), 与 N 的点积有三种可能 (1) P(t) 在多边形外侧:N 。(P(t)-A) 0 (2) P(t) 在多边形的边及其延长线上:N 。(P(t)-A) = 0 (3) P(t) 在多边形内侧:N 。(P(t)-A) 0 因此,P(t)在凸多边形内的充要条件是:对凸多边形边界上任意一点A和该处内法向量N,都有:N ? (P(t)-A) 0 P1 P2 R N A P(t) 参数化方法(CYRUS—BECK算法 设多边形有 k条边, 可以在每条边上取一个点 Ai 和该点的法向量 Ni,则可见线段的参数区间为下列不等式的解 上述问题是一个线性规划问题,可求得满足条件的一系列 t 值,在实际操作中我们只关心其最大值tu和最小值tl,它们对应可见线段区间的端点 为具体求解 t,将线段方程代入上述判别式得: 参数化方法(CYRUS—BECK算法) 化简得: (1) 当 Ni ? (P2-P1) = 0 时, Ni 垂直于(P2-P1) ,第 i 条边与P1P2 平行,无交点 P2-P1 Ai Ni P2-P1 Ni?(P2-P1)=0 参数化方法(CYRUS—BECK算法) (2)当Ni?(P2-P1)0 时,P1 在该边外侧,可求出交点ti ,并将其归入下限组 (3)当Ni?(P2-P1)0 时,P2 在该边外侧,可求出交点ti ,并将其归入上限组 参数化方法(CYRUS—BECK算法) P1 P2 下限组 上限组 参数化方法的几何解释 Ni .(P2-P1) 0 情况 Ni 。(P2-P1) 0 情况 (4) 当右边的判别式=0时对应线段与边界的交点,因此当 Ni (P2-P1) ≠ 0 时可求出 t 为: 则上述右则的判别式可进一步转化为: t≥-ti ,当Ni ? (P2-P1)0时 t≤-ti,当Ni ? (P2-P1)0时 0 ≤t ≤1 参数化方法(CYRUS—BECK算法) (5) 可见线段为下限组中的最大值至上限组中的最小值之间的线段即: (6) 当tl tu,则tl 和tu 是可见线段的端点参数,否则线段在区域之外 (7) 可见线段解的几何解释 参数化方法(CYRUS—BECK算法) (1)下限组以Ni?(P2-P1)0为特征,表示沿P1P2前进方向将进入多边形内 (2)上限组以Ni?(P2-P1)0为特征,表示沿P1P2前进方向将出并远离多边形 P1 P2 下限组 上限组 参数化方法的几何解释 参数化方法(CYRUS—BECK算法) 当凸多边形是矩形窗口,且矩形的边平行于坐标轴时,前述的参数化方法可简化为Liang-Barsky算法。 Liang-Barsky算法 线段的参数方程

文档评论(0)

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

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

1亿VIP精品文档

相关文档