计算机图形学第二版第六章答案,计算机图形学第六章

a7f4a3f590493a1e451dd952a488fd7c.gif 计算机图形学第六章

(33页)

3845a0a316465bb7d71bb3b708fef253.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

14.90 积分

第六章 二维观察,本章重点讲解内容:,2D 观察变换,2D 裁剪操作,2D 观察,一个图形软件包都允许指定一个图形中要显示的部分以及在显示器显示的位置 任何用做世界坐标参考系的笛卡儿坐标系都可以用来定义图形 二维图形的视图通过指定整个图形区域中的一个子区域来获得 可以仅显示一个区域,也可以同时显示几个区域,或者显示一个场景中的动态扫描序列,世界坐标系(World Coordinates) 用户处理自己的图形时所采用的坐标系,坐标的大小和尺寸由用户确定。 设备坐标系(Device Coordinates) 与一个图形设备相关的坐标系叫设备坐标系。如显示器或打印机有它们自己的坐标系。 规格化坐标系(Normal Device Coordinates) 它是独立于具体物理设备的一种坐标系,具有显示空间在X和Y方向上都是从0到1,坐标系,DC与NDC之间的关系 对每一个物理设备而言,DC与NDC仅仅是坐标值相差一个比例因子 NDC可以看成是一个抽象的图形设备,要输出到具体的设备时,只需乘上一个比例因子即可,6.1 2D 观察变换,考察一个图形时,往往采用两种模型: 物理模型:是用户在WC中描述的 逻辑模型:是在显示器上呈现的物体的图形,它是在设备坐标系中描述的。 图形太大和复杂,只能显示局部内容,为使用户能清晰地观察其细节部分 用户感兴趣区域,,6.1 2D 观察变换,,,2D观察变换 2D观察流程 2D剪裁操作,6.1.1 窗口 & 视口,窗口: 常规图形系统中,世界坐标系中指定的用于显示的坐标区域。 视口: 显示设备上用于窗口映射的坐标区域,也叫视区。 观察变换:世界坐标系中部分场景映射到设备坐标系的过程称为观察变换,也叫视像变换,或称为从窗口到视口的变换。,6.1.2 2D 的观察流程,,WC,将世界坐标转 换为观察坐标,使用建模坐标变换 构造世界坐标场景,使用窗口-视区描述 将观察坐标映射到规 范化观察坐标,将规范化视口 映射到设备坐标,,,,,,MC,VC,NVC,DC,世界坐标 →观察坐标的变换,观察参考坐标系为世界坐标系窗口提供参考系 在世界坐标系中选择某个位置作为观察参考坐标系的原点P0 = (x0, y0) 建立观察参考坐标系的坐标轴的方向,将一个世界坐标系的矢量V作为观察坐标系yv轴方向,矢量V为观察向量 给定V,就可分别计算在观察坐标轴yv和xv上的单位向量v = (vx, vy)和u = (ux, uy),从观察坐标系变换到世界坐标系的矩阵由两个变换合成: 将观察坐标原点移动到与世界坐标系原点重合 绕原点旋转使两个坐标系重合。 则组合变换矩阵:Mwc,vc=R·T T:平移 R:单位向量V,U分别构成R的第一二行,,世界坐标 →观察坐标的变换,M = R·T,,2D观察变换 2D观察流程 2D剪裁操作,,窗口到视口的坐标变换,,,2D观察变换 2D观察流程 2D剪裁操作,保持视口与窗口中的对象具有同样的相对位置,必须满足 (Xw-W1) / (W2-W1) = (Xv-V1) / (V2-V1) (Yw-W3) / (W4-W3) = (Yv-V3) / (V4-V3),窗口到视口的坐标变换,Xv = SxXw+tx Yv = SyYw+ty 缩放系数 Sx = (V2-V1) / (W2-W1) Sy = (V4-V3) / (W4-W3) 平移参数 tx = (W2*V1-W1*V2) / (W2-W1) ty = (W4*V3-W3*V4) / (W4-W3),窗口到视口的坐标变换,已知w1=10, w2=20, w3=40, w4=80, v1=80, v2=110, v3=10, v4=130, 窗口中一点P(15,60),求视口中的映射点P' 解:(15-10) / (20-10) = (xv-80) / (110-80) (60-40) / (80-40) = (yv-10) / (130-10) xv = 95, yv = 70 P'(95,70),例:窗口到视口的坐标变换,6.5 2D裁剪操作,定义:识别图形在指定区域内、外的图形部分的过程 应用包括:,从定义的场景中取出用于观察的部分;,在三维图形中标识出可见面;,防止线段或对象的边界混淆;,用实体造型来创建对象;,显示多窗口的环境;,允许进行拷贝、移动或删除等绘图操作,6.5 2D裁剪操作,裁剪窗口:用来裁剪对象的区域。 裁剪时机 针对窗口裁剪:只有窗口内的部分映射到设备坐标系中,不用将多余图元变换到设备空间中 针对视口裁剪:映射后,用视口边界裁剪,可通过合并观察和几何变换矩阵来减少计算量,裁剪类型,6.5 2D 裁剪操作,2D观察变换 2D剪裁操作,点裁剪,直线裁剪,多边形裁剪,曲线裁剪,文字裁剪,,6.6 点的裁剪,假设裁剪窗口是在标准位置的矩形窗口 点P(x, y)如果满足下列不等式,则保留: w1≤x≤w2, w3≤y≤w4 否则,P点就在窗口外,被裁剪,,点的剪裁 线段的剪裁 多边形的剪裁 文字的剪裁 外部的剪裁,,6.7 线段的裁剪,,点的剪裁 线段的剪裁 多边形的剪裁 文字的剪裁 外部的剪裁,,线段与窗口的位置关系: 整个线段全在窗口内 整个线段全在窗口外 线段部分在窗口外,部分在窗口内,6.7 线段的裁剪,通过对线段端点进行“内部-外部”测试来处理线段 当线段的两个端点全在窗口内时,该直线整个在窗口内 当线段的两个端点,一个在窗口内,一个在窗口外时,该直线部分在窗口内,部分在窗口外 当线段的两个端点全在窗口外时,该直线可能整个在窗口外;也可能部分在窗口内,部分在窗口外,线段的裁剪,,点的剪裁 线段的剪裁 多边形的剪裁 文字的剪裁 外部的剪裁,线段的裁剪,线段的裁剪,,点的剪裁 线段的剪裁 多边形的剪裁 文字的剪裁 外部的剪裁,Cohen-Sutherland直线裁剪(CS算法),Liang-Barsky 直线裁剪(LB算法),Nicholl-Lee-Nicholl 直线裁剪(NLN算法),非矩形裁剪窗口,6.7.1 Cohen-Sutherland 线段裁剪,思想: 线段由端点标识; 测试线段端点和窗口边界的关系以确定是否需要计算交点 线段的两个端点全在窗口内时,线段整个在窗口内 线段的两个端点,分别在窗口内和窗口外时,该线段部分在窗口内,部分在窗口外 线段的两个端点全在窗口外时,该线段可能整个在窗口外,也可能部分在窗口内,部分在窗口外,,CS线段剪裁 中点剪裁 LB线段剪裁 NLN线段剪裁 非矩形剪裁,,扩展窗口的边界将整个2D平面划分为9个区域 每个区域赋予一个4位编码(区域码)b3b2b1b0,CS算法 编码方案,,CS线段剪裁 中点剪裁 LB线段剪裁 NLN线段剪裁 非矩形剪裁,计算直线端点区域编码: c1 和 c2; 判断 c1 和 c2 均为0000,保留直线 c1 & c2 不为零,同在某边界外,删除该直线 c1 & c2 为零,需要进一步求解交点 以左、右、下、上为序,找出端点区域码中第一位为1的位,将窗口边界方程x=w1或x=w2或y=w3或y=w4代入直线方程,计算直线与窗口边界的交点,将交点和另一端点形成新的直线,重复上述过程,直至线段保留或删除,CS 算法描述,,CS线段剪裁 中点剪裁 LB线段剪裁 NLN线段剪裁 非矩形剪裁,CS 算法描述,,CS线段剪裁 中点剪裁 LB线段剪裁 NLN线段剪裁 非矩形剪裁,,,,,,,,,,P3,P4,CS线段裁剪算法 举例,0000,0110,0100,0101,0010,0001,1001,1000,1010,,CS线段剪裁 中点剪裁 LB线段剪裁 NLN线段剪裁 非矩形剪裁,,CS线段裁剪算法 举例,,,CS线段剪裁 中点剪裁 LB线段剪裁 NLN线段剪裁 非矩形剪裁,优点:简单,易于实现。 算法中求交点的次数决定了算法的速度。,CS线段裁剪算法小结:,,CS线段剪裁 中点剪裁 LB线段剪裁 NLN线段剪裁 非矩形剪裁,CS线段裁剪算法 作业,已知线段的两个端点 P1(-3/2, 1/6),P2(1/2, 3/2) 窗口边界x = -1, x = 1, y = -1, y = 1 用CS算法对线段进行裁剪,,CS线段剪裁 中点剪裁 LB线段剪裁 NLN线段剪裁 非矩形剪裁, 关 键 词: 计算机 图形学 第六

4d91c43bfc72ca913299809b07b4968f.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值