图形学CG第3章变换.ppt

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

(3)多边形的裁剪 问题的提出:? * * 问题:多边形的边界不再封闭,容易产生歧义。 解决方法:需要用窗口边界的恰当部分来封闭它. * * 沿着多边形依次处理顶点会遇到四种情况: * * 算法策略:将多边形关于矩形窗口的裁剪分解为多边形关于窗口四边所在直线的裁剪。其处理过程称为流水线过程(左上右下),前边的结果是后边的输入。该算法亦称为逐边裁剪算法。 Sutherland-Hodgeman多边形裁剪 基本思想 * * * * 算法实施策略: 为窗口各边界裁剪的多边形存储输入与输出顶点表。在窗口的一条裁剪边界处理完所有顶点后,其输出顶点表将用窗口的下一条边界继续裁剪。 窗口的一条边以及延长线构成的裁剪线把平面分为两个区域,包含有窗口区域的一个域称为可见侧;不包含窗口区域的域为不可见侧。 * * 特点: * * 例3-4 对于边界与x和y轴平行的矩形窗口,在其上进行的裁剪涉及到计算直线段与垂直和水平线的交点。请求出线段p1p2(p1(x1,y1),p2(x2,y2))与下列直线的交点:(a)垂直线x=a;(b)水平线y=b. 解:用参数形式写出p1p2的方程 x=x1+t(x2-x1), 0≤t≤1 (1) y=y1+t(y2-y1) (2) (a)将x=a,代入方程(1),求得t=(a-x1)/(x2-x1).然后t代入方程(2),最后求得交点为: * * (b)将y=b,代入方程(2),求得t=(b-y1)/(y2-y1).然后t代入方程(2),最后求得交点为: * * * * 例 3-5 怎样才能确定点P(x,y)是位于一条连接点A(x1,y1) 和B(x2,y2)的直线的左边还是右边? 解:构造向量AB和AP,如果点P是在AB的左边,那么按照两个向 量向量积的定义,AB×AP指向垂直于xy平面的向量K的方向。 如果点P在AB的右边,那么向量积指向-K的方向,现有 AB=(x2-x1)I+(y2-y1)J AP=(x-x1)I+(y-y1)J 所以 AB×AP=[(x2-x1)(y-y1)-(y2-y1)(x-x1)]K 则这个向量积的方向由下面的数确定: H=(x2-x1)(y-y1)-(y2-y1)(x-x1) 如果H为正,则P位于AB的左边。如果H为负,则P位于AB的右边。 * * * * 例 3-6 使用Sutherland-Hodgman算法求出以矩形A(1,1),B(5,3),C(4,5),D(0,3)作为窗口,对连接P1(-1,2)到P2(6,4)的线段进行裁剪. 解: 先采用窗口的边界AB对”多边形”P1P2进行裁剪: AB 首先确定点P1和P2位于AB的哪一边.用点A=(x1,y1)和B=(x2,y2)计算H(参见例3-5),得 H=(x2-x1)(y-y1)-(y2-y1)(x-x1) 求得P1的H=6,P2的H=7.所以两个点都位于AB的左 边.因此,算法将输出P1和P2. 2. BC 用点A=(x1,y1)和B=(x2,y2)计算H,得P1的H=11,P2的H=-1.所以P1位于BC的左边, P2位于BC的右边.现在求P1 P2与BC延长线的交点I1。采用例4-4的方法,求得 * * * * 按照算法,点P1和I1被传去进一步裁剪。 3.CD 象前面一样处理。求得P1的H=2,I1的 所以两个点都位于CD的左边。因此,它们被传给下一阶段。 4.DA 用点D=(x1,y1)和A=(x2,y2)计算H,求得P1的H=-3,P2的H=10。所以P1位于DA的右边, P2位于DA的左边,I1位于DA的左边。P1I1与DA延长线的交点是 裁剪线段为I1I2。 3.5窗口到视区的变换 1 基本概念 窗口:程序员用来定义草图的整个自然空间称为用户域,窗口是用户指定的任一区域. 视区:将窗口映射到显示设备上的坐标区域称为视区(Viewport) * * * * * 说明: 1.窗口能够进行平移、放大缩小、旋转等几何变换,这一变换又称为窗口漫游。 2.视区一般不进行几何变换。 * * 窗口到视区的变换:要将窗口内的图形在视区中显示出来,必须经过将窗口到视区的变换(Window-Viewport Transformation)处理,也称为观察变换. 规格化设备坐标系:也是直角坐标系,它是将二维的设备坐标系规格化到(0.0,0.0)到(1.0,1.0)的坐标范围内形成的。 观察变换的几个步骤,通常称为二维观察流程。 2.窗口到视区的变换 * * * * * 1. 变焦距

文档评论(0)

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

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

1亿VIP精品文档

相关文档