《ch0二维观察与裁剪0》-课件.ppt

  1. 1、本文档共89页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3、求交点,确定P1P2可见部分 斜率测试中的坐标差值和计算结果用于求交计算。 由参数方程式: x=x1+(x2-x1)u;y=y1+(y2-y1) 。 与窗口左边界的x交点位置是: x=xL, u=(xL-x1)/(x2-x1), 所以,y交点的位置是:y=y1+[(y2-y1)/(x2-x1)](xL-x1) 并且与窗口顶部边界的交点是: y=yT, u=(yT-y1)/(y2-y1), 所以,x交点的位置是:x=x1+[(x2-x1)/(y2-y1)](yT-y1) Nicholl-Lee-Nicholl 算法 内裁剪与外裁剪 保留并显示窗口内的线段称为内裁剪 保留并显示窗口外的线段称为外裁剪 用途 (1)用于凹多边形裁剪窗口的线段裁剪 v1 v2 v3 v4 v5 p1 p2 (2)应用与多重窗口显示 显示窗口 窗口1 窗口2 窗口3 内裁剪与外裁剪 多边形裁剪 错觉:直线段裁剪的组合? 新的问题:1)边界不再封闭,需要用窗口边界的恰当部分来封闭它,如何确定其边界? 待裁剪多边形 裁剪窗口 裁剪结果 待裁剪多边形 裁剪结果 裁剪窗口 多边形裁剪 2)一个凹多边形可能被裁剪成几个小的多边形,如何确定这些小多边形的边界? 裁剪窗口 待裁剪多边形 裁剪结果 亦称逐边裁剪算法 Sutherland-Hodgman算法 分割处理策略:将多边形关于矩形窗口的裁剪分解为多边形关于窗口四边所在直线的裁剪。 流水线过程(左上右下):前边的结果是后边的输入。 V0 V1 V2 V3 (a) V0 V2 V3 V4 (b) V1 V1 V3 V4 V5 (c) V2 V0 V2 V4 V6 V7 (d) V3 V1 V5 V0 V1 V2 V4 V7 V0 (e) V3 V6 V5 V8 Sutherland-Hodgman算法 基本思想是一次用窗口的一条边裁剪多边形。 考虑窗口的一条边以及延长线构成的裁剪线该线把平面分成两个部分:可见一侧;不可见一侧 多边形的各条边的两端点S、P。它们与裁剪线的位置关系只有四种 可见侧 S P 可见侧 S P 可见侧 P S 可见侧 P S (1) (2) (3) (4) Sutherland-Hodgman算法 情况(1)仅输出顶点P; 情况(3)输出0个顶点; 情况(2)输出线段SP与裁剪线的交点I; 情况(4)输出线段SP与裁剪线的交点I和终点P 可见侧 S P 可见侧 S P 可见侧 P S 可见侧 P S (1) (2) (3) (4) 两个基本问题 (1) 判定可见性,即判定点位于裁剪线哪一侧 Sutherland-Hodgman算法 假定裁剪窗口沿顺时针方向,取剪裁线e的内法矢量n,从剪裁线上点v到判别点p e p n p v 若:n?vp0, 则p点位于e的可见侧 若:n?vp0, 则p点位于e的不可见侧 例:设上图中剪裁边e为s1(1,-1)到s2(2,1)点的线段,判定点p1(1,2),p2(2,-1)关于裁剪线e的可见性。 解:s1s2=(1,2),法向量n=(2,-1),其为内法向量 v取s1点,则vp1=(0,3),vp2=(1,0),所以n?vp1=-30, n?vp2=20 ,p1在不可见侧,p2在可见侧。 (2) 线段求交问题 Sutherland-Hodgman算法 若线段一端在裁剪线的外侧另一端在裁剪线的内侧,则其必须与裁剪线相交,现就参数方程表示的曲线来讨论其交点。 设两线段的端点分别为p1,p2,q1,q2,则直线的参数方程分别为: p(s)=p1+(p2-p1)s, 0?s?1 q(t)=q1+(q2-q1) t, 0?t?1 在交点处有 p(s)=q(t) 因为 p(s)=(x(s),y(s)),q(t)=(x(t),y(t)) 所以有方程x(s)=x(t), y(s)=y(t)。 方程若无解,则两线段平行,若解在[0,1]在之外,两线段不相交 Sutherland-Hodgman算法 例:求上例中剪裁边e为s1(1,-1)到s2(2,1)点的线段,和点p1(1,2)到p2(2,-1)线段的交点。 q(t)=q1+(q2-q1)t=(1,-1)+(1,2)t p(s)=p1+(p2-p1)s=(1,2)+(1,-3)s t=s; t=s=3/5 交点为(8/5,1/5) -1+2t=2-3s 一般情

文档评论(0)

沙卡娜 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档