9.图形变换与图形观察.ppt_第1页
9.图形变换与图形观察.ppt_第2页
9.图形变换与图形观察.ppt_第3页
9.图形变换与图形观察.ppt_第4页
9.图形变换与图形观察.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机辅助设计及图形学第9讲图形变换与观察 华中科技大学机械学院CAD中心吴义ad wyz 主要内容 二维几何变换二维齐次变换二维观察三维几何变换投影变换三维观察OpenGL图形变换与观察功能 9 1二维几何变换 二维图形几何变换可通过矩阵运算实现 令 称T为变换矩阵 有 这里 x y 为变换后点的坐标 x y 为变换前点的坐标 变换矩阵中a b c d的不同取值 可以实现各种不同变换 从而达到对图形进行变换的目的 二维图形的基本几何变换包括 比例变换 对称变换 错切变换 旋转变换 平移变换等 在变换矩阵中 令b c 0 则比例变换为 式中a d分别为x y方向上的比例因子 二维对称变换 对坐标轴的对称变换 1 对y轴对称 2 对X轴对称 对坐标原点的对称变换 对原点对称 二维比例变换 二维旋转变换 在二维空间里 我们规定 图形的旋转是指绕坐标系原点旋转 角 且逆时针为正 顺时针为负 变换矩阵为 由式可知 对右图字母T绕坐标原点进行旋转变换 旋转60 则变换后的坐标为 二维平移变换 来实现 但是 若实现平移变换 变换前后的坐标必须满足下面的关系 上述四种变换都可以通过变换矩阵 式中 x y是平移量 应为常数 但是应用前述变换矩阵对点进行变换 则有 上式中的cy bx均非常量 因此用原来的2 2的变换矩阵是无法实现平移变换 解决方法 将变换矩阵增加一行一列 则可对点进行平移变换 9 2齐次变换 在平移变换中 我们将 xy 扩充为 xy1 实际上是由二维向量变为三维向量 这种用三维向量表示二维向量的方法叫做齐次坐标法 进一步推广 用n 1维向量表示n维向量的方法称之为齐次坐标法 所谓齐次坐标就是用n 1维向量表示n维向量得到的坐标 对齐次坐标进行坐标变换称为齐次变换 相应的变换矩阵称为齐次变换矩阵 设三维空间点P的坐标为 x y z 它是唯一的 若用齐次坐标表示时 则为 hx hy hz h 且不唯一 齐次变换定义 齐次变换几何意义 将Oxy坐标系增加一与x轴和y轴正交的w轴 在w 1的平面上有点P1 x y 1 则当w由0变化到无穷时 齐次坐标Pw xw yw w 将处在由OP1定义的射线OQ上 二维坐标则是该射线在w 1平面上的交点 则任意 xwyw w 的座标为 二维齐次变换表示了在w 1平面上点的坐标变换 即P1到P1 的坐标变换 二维齐次变换 二维齐次变换矩阵为 其中2 2阶矩阵可以实现图形的比例 对称 错切 旋转等基本变换 1 2阶矩阵可以实现图形的平移变换 2 1阶矩阵可以实现图形的透视变换 而 s 可以实现图形的全比例变换 二维几何变换汇总表 二维齐次变换实现 对话框设计二维点Position2D对象矩阵CMatrix3D对象 二维组合变换 前面介绍的几种变换可用统一的变换矩阵来实现 称之基本变换 但有些变换仅用一次基本变换是不够的 必须由两次或多次基本变换组合才能实现 这种由多种基本变换组合而成的变换称之为组合变换 相应的变换矩阵叫做组合变换矩阵 设坐标P经过n次变换T1 T2 Tn到P 则变换结果为 P PT1T2 Tn PT式中 T T1T2 Tn为总的变换矩阵 组合变换的目的是将一个变换序列表示为一个变换矩阵 绕任意点旋转变换 绕任意点旋转变换 平面图形绕任意点C x y 旋转 角需要通过组合变换实现 步骤如下 1 将旋转中心平移到原点 2 将图形绕坐标系原点旋转 角 3 将旋转中心平移回到原来位置 组合变换矩阵的顺序不能颠倒 顺序不同 则变换的结果亦不同 如右图 9 3二维观察变换 在实际应用中 通常把在用户坐标系中选定的需要显示图形的区域称为窗口 并能控制在显示屏上显示图形的位置和大小 把在显示坐标系中规定的显示图形区域称为视口 观察变换就是把用户坐标系中选定窗口的图形变换到显示器视口中进行显示 设用户选定的窗口范围为 wxl wyl 和 wxr wyr 视口范围为 vxl vyl 和 vxr vyr 将窗口中的图形转为视口中图形的过程为 1 先平移窗口使其左下角与坐标原点重合 2 再比例变换使其大小与视口相等 3 最后再通过平移使其移到视口位置 如下图所示 由此可得观察变换矩阵为 9 4三维几何变换 三维几何形体可采用实体模型来表达 也就是说 1 三维几何形体由一系列点集和这些点集之间的连接关系表达 通常用点表 边表 环表 面表等信息表达 2 当一个形体在坐标系中平移 旋转时 只是改变点集的坐标位置 而不改变各点 边 面之间的任何连接关系 3 几何形体的三维变换只需对形体的点表信息进行变换即可 注 在CAD系统中 三维形体中的边的方程及面的方程都是由点集信息推导出来的 不需直接对边的方程和面的方程进行变换 三维几何变换是二维几何变换的扩展 用三维齐次变换矩阵 4 4矩阵 表示 可表示包括平移变换 比例变换 错切变换 对称变换 绕坐标轴的旋转变换 绕空间任意轴的旋转变换等 三维齐次变换矩阵如下 比例 对称变换矩阵 三维齐次变换矩阵 sx sy sz 0 沿坐标轴方向作放缩变换 当sx 1 sy sz 1时 相对于x轴中心对称 当sx 1 sy sz 1时 相对于yOz平面对称当sx sy sz 1时 相对于原点中心对称 平移变换矩阵 式中tx ty tz为平移分量 绕坐标轴的旋转变换 绕任意轴的旋转变换 三维组合变换 与二维组合变换一样 通过对三维基本变换矩阵的组合 可以实现对三维物体的复杂变换 设坐标P经过n次变换T1 T2 Tn到P 则变换结果为 P PT1T2 Tn PT与二维相同 组合变换时 同样需要注意乘法的顺序 绕任意轴的旋转变换 绕任意轴旋转变换是组合变换 变换过程比较复杂 首先 对物体作平移和绕轴旋转变换 使得所绕之轴与某一根标准坐标轴重合 然后 绕该标准坐标轴作所需角度的旋转 最后 通过逆变换使所绕之轴恢复到原来位置 这个过程须由7个基本变换的级联才能完成 如右图 设旋转任意轴为p1 x1 y1 z1 p2 x2 y2 z2 两点定义的单位矢量 a b c 绕轴旋转角度为 可用7个步骤实现 步骤1 平移T x1 y1 z1 使p1点与原点重合 变化矩阵为 变化矩阵为 其中 步骤2 Rx 绕X轴旋转 角 使得轴p1p2落入平面xoz内 其中 步骤3 Ry 绕Y轴旋转 角 使p1p2与z轴重合 x z y u a v o 步骤4 Rz 绕Z轴 即P1P2轴 旋转 角度 其变化矩阵为 步骤5 Ry 作步骤3的逆变换T3 1 步骤6 Rx 作步骤2的逆变换T2 1 步骤7 T x1 y1 z1 作步骤1的逆变换T1 1 其组合变换矩阵为 T T1 T2 T3 T4 T3 1 T2 1 T1 1 变化矩阵为 绕任意轴旋转的程序实现 对话框设计三维点Position3D对象矩阵CMatrix4D对象 三维形体几何变换示例 假定一六面体ABCDEFGH各点的坐标分别为 x1 y1 z1 x8 y8 z8 则经过图形变换后的坐标为 式中 T为所要进行的图形变换矩阵 注意灵活应用复合变换 9 5形体的投影变换 将三维图形向二维平面上投影生成二维图形表示的过程称为投影变换 根据视点的远近 投影分为平行投影和透视投影 当投影中心 观察点 与投影平面之间的距离为无穷远时 为平行投影 否则为透视投影 投影变换定义 透视投影的图形与眼睛观察景物的原理及效果是一致的 常用于图形的真实效果显示 平行投影后直线间的平行关系不变 常用于三维图形交互和生成工程图的视图 a 平行投影变换示意图 b 透视投影变换示意图 投影变换分类 正交投影 正投影 x y z的调换 投影方向垂直于投影平面时称为正平行投影 正交投影 也称正投影 是正平行投影的特殊形式 其投影平面相互垂直 常用于生成工程图的三视图 三视图变换矩阵 主视图俯视图左视图 只显示XY前二维的值 Z值忽略 轴测投影 将三维图形绕其模型坐标系的x轴和y铀分别旋转一定的角度后 再垂直于xOy平面向该平面投影 可获得具有立体感的轴测图 正轴测投影 使得Z轴指向视点 视线为立方体主对角线 将坐标系作两次旋转变换TRx 和TRy TRx TRx 使新坐标系的z 轴指向视点 按绕任意轴旋转计算 同样 显示XY前二维的值 Z值忽略 透视投影 透视投影的视线 投影线 是从视点 观察点 出发 视线是不平行的 不平行于投影平面的视线汇聚的一点称为灭点 在坐标轴上的灭点叫做主灭点 主灭点数和投影平面切割坐标轴的数量相对应 按照主灭点的个数 透视投影可分为一点透视 二点透视和三点透视 一点透视投影 h为视点到显示平面距离 zvp为显示平面z坐标 zprp为视点的z坐标 9 6三维观察变换及显示流程 在CG和CAD软件系统中 涉及许多坐标系和坐标变换 方便于物体模型定义的坐标系 又称局部坐标系 或工作坐标系 因为物体模型在某一任意坐标系下定义可能是非常困难 通过模型变换再实现其任意位置 图 a 图 b 模型坐标系 世界坐标系 也有称用户坐标系 是用户用于定义所有物体的统一参考坐标系 它在计算过程中始终保持唯一性 无论物体在何位置 在什么模型坐标系 一般应变换到统一的世界坐标系 即统一的参照坐标系 然后进行其它计算 避免坐标系的混乱 引起不必要的错误 物体从模型坐标下经几何变换到世界坐标系称模型变换 通过坐标变换实现 世界坐标系 WC 观察坐标系 VRC 通常取物体所在的坐标系为世界坐标系 WC 投影平面与投影中心也在世界坐标系中指定 依赖于投影平面和投影中心 为照相机底片 建立一个uvn坐标系 称之为观察坐标系 VRC 坐标系变换 如世界坐标向观察坐标系转换 假定有两个坐标系Oxyz和O uvn 如上图 在坐标系Oxyz中 O 的坐标为 O x O y O z O u O v和O n分别为三个单位矢量 ux uy uz vx vy vz 和 nx ny nz 要将坐标系Oxyz中的图形变换到坐标系O uvn中去 称该坐标变换为Txyz uvn 其变换为 则点的坐标计算 x y z 1 xyz1 T x y z 1 T 1 xyz1 三维观察变换 三维观察变换所起的作用是完成从用户空间选取的一部分物体描述变换到显示屏上指定的视口中的图形描述 类似于照相机成像模型 从用户的图象描述产生显示器上的图形描述的处理过程如图所示 三维图形显示流程 9 7OpenGL图形变换 4个矩阵堆栈 Matrixstack 模型视 投影视图 二维工程图 纹理和颜色位于栈顶的矩阵为当前矩阵 为了记住当前矩阵 常用glPushMatrix 和glPopMatrix 函数 若自定义矩阵用glLoadMatrix m 矩阵相乘用glMultMatrix m MODELVIEW下的图形变换 glTranslatef deltaX deltaY deltaZ glRotatef angle axisX axisY axisZ glScalef Sx Sy Sz OpenGL观察功能 二维观察函数 投影模式 glMatrixMode GL PROJECTION glLoadIdentity 裁剪窗口 gluOrtho2D xmin xmax ymin ymax 视口函数 glViewport xvmin yvmin width height OpenGL三维观察函数 三维一般观察glMatrixLoad GL MODELVIEW gluLookat x0 y0 z0 xr yr zref Vx VyVz glOrtho xmin xmax ymin ymax dnear dfar 正交投影glMatrixLoad GL PROJECTION glOrtho2D xmin xmax ymin ymax 透视观察glFrustrum xmin xmax ymin ymax dnear dfar 对称透视 gluPerspective theta aspect dnear dfar 剖视观察glClipPlane id planeParameters glEnable id 实例代码 见TransparentTeapot三维观察工程 思考题 2 掌握投影变换基本原理及方法 了解计算机图形的基本显示流程 1 掌握图形变换的基本方法 重点掌握平移变换 旋转变换 以立方体为例

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论