2.旋转变换.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.旋转变换

Example: * 二. 复合变换 * * 三维基本几何变换都是相对于坐标原点和坐标轴进行的几何变换 假设三维形体变换前一点为p(x,y,z),变换后为p(x,y,z)。 一.3D基本几何变换 * * 1. 平移变换 一.3D基本几何变换 * * 2. 旋转变换 一.3D基本几何变换 * * (1)绕z轴旋转 一.3D基本几何变换 * * (2)绕x轴旋转 一.3D基本几何变换 * * (3)绕y轴旋转 一.3D基本几何变换 Flash演示 * * 3. 放缩变换 一.3D基本几何变换 * * 例:对如图7-6所示的长方形体进行放缩变换,其中Sx=1/2,Sy=1/3,Sz=1/2,求变换后的长方形体各点坐标。 ? 一.3D基本几何变换 * * 三维复合变换是指图形作一次以上的基本变换,变换结果是基本变换矩阵相乘。 二.3D复合变换 * * 1. 相对任一参考点的三维变换 相对于参考点F(xf,yf,zf)作比例、旋转、错切等变换的过程分为以下三步: (1)将参考点F移至坐标原点 (2)针对原点进行三维几何变换 (3)进行反平移 二.3D复合变换 * * 例:相对于F(xf,yf,zf)点进行放缩变换 二.3D复合变换 * * 2. 绕任意轴的三维旋转变换 问题:如何求出TRAB? 二.3D复合变换 向基本变换转化 AB与Z轴重合 * * (1) 将A点平移到坐标原点 二.3D复合变换 下一步? * * 欲使OB绕x轴旋转至xoz坐标平面内,旋转角度应为 ,原因是 . 二.3D复合变换 * * (2) 将OB绕x轴逆时针旋转α角,则OB旋转到xoz平面上, a, b, c 已知 二.3D复合变换 α=? 若绕z轴, α? * * (3) 将OB绕y轴顺时针旋转β角,则OB旋转到z轴上 二.3D复合变换 β =? * * (4) 经以上三步变换后,AB轴与z轴重合,此时绕AB轴的旋转转换为绕z轴的旋转。 (5) 最后,求TtA,TRx,TRy的逆变换,回到AB原来的位置。 二.3D复合变换 * * 针对任意方向轴的变换可用五个步骤来完成: (1)平移:使任意方向轴起点与坐标原点重合 (2)旋转:使方向轴与某一坐标轴重合,变换可能不止一次 (3)针对该坐标轴完成所需变换 (4)逆旋转:使方向轴回到其原始方向 (5)逆平移:使方向轴回到其原始位置。 二.3D复合变换 * OpenGL旋转、平移、放缩 上载单位阵: glLoadIdentity(); 在右边相乘: glRotatef(theta, vx, vy, vz); theta以角度为单位,(vx,vy,vz)定义旋转轴 glTranslatef(dx, dy, dz); glScalef(sx, sy, sz); 每个函数的参数还可以是d(double)类型 * * 示例 固定点为(1.0, 2.0, 3.0), 绕z轴旋转30° glMatrixMode(GL_MODEL_VIEW); glLoadIdentity(); glTranslated(1.0, 2.0, 3.0); glRotated(30.0,0.0,0.0,1.0); glTranslated(-1.0,-2.0,-3.0); !!在程序中最后指定的矩阵是最先被执行的操作 * * 变换的应用 例如:应用空闲函数旋转立方体,鼠标函数改变旋转的方向 从一个画立方体的程序开始(cube.c) 立方体中心在原点 各方向与坐标轴平行 * * OpenGL中的矩阵 在OpenGL中矩阵是状态的一部分 有三种类型 模型视图(GL_MODELVIEW) 投影(GL_PROJECTION) 纹理(GL_TEXTURE) 用于操作的单组函数 选择所操作的对象 glMatrixMode(GL_MODEL_VIEW); glMatixMode(GL_PROJECTION); * * 当前变换矩阵(CTM) 从概念上说,当前变换矩阵(CTM)就是一个4x4阶的齐次坐标矩阵,它是状态的一部分,被应用到经过流水线中的所有顶点 CTM是在应用程序中定义的,并被上载到变换单元中 * * CTM运算 CTM可以被改变,改变的方法是上载一个新的 CTM或者右乘一个矩阵 上载单位阵:C ← I 上载任意矩阵:C ←M 上载一个平移矩阵:C ← T 上载一个旋转矩阵:C ←R 上载一个放缩矩阵:C ← S 右乘任意矩阵:C ←CM 右乘一个平移矩阵:C ←CT 右乘一个旋转矩阵:C ←CR 右乘一个放缩矩阵:C ←CS * * 绕固定点的旋转 从单位阵开始:C ← I 把固定点移到原点:C ← CT?1 旋转:C ← CR 把固定点移回到原处:C ← CT 结果:C

文档评论(0)

daoqqzhuan2 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档