计算机图形学-变换._第1页
计算机图形学-变换._第2页
计算机图形学-变换._第3页
计算机图形学-变换._第4页
计算机图形学-变换._第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、12第3章 变换基本的二维几何变换二维复合变换其他二维变换三维几何变换OpenGL几何变换函数三维图形的显示流程投影裁剪3几何变换 应用于对象几何描述并改变它的位置、方向或大小的操作称为几何变换(geometric transformation)基本的二维几何变换包括平移、旋转和缩放4二维平移 通过将位移量加到一个点的坐标上来生成一个新的坐标位置,可以实现一次平移TPP5二维平移6二维旋转 通过指定一个旋转轴和一个旋转角度,可以进行一次旋转变换。PRP7二维缩放 改变一个对象的大小,可以使用缩放变换。xsxxysyyyxssyxyx00PSP 一个简单的二维缩放操作可以通过将缩放系数与对象坐标

2、位置相乘而得。 也可以写为矩阵形式。或8二维缩放9矩阵表示和齐次坐标 许多图形应用涉及到几何变换的顺序需要用一个通式来表示平移、旋转和缩放将22矩阵扩充为33矩阵,可以把二维几何变换的乘法和平移项组合为单一矩阵表示21MPMP10二维平移矩阵110010011yxttyxyxPttTPyx),(11二维旋转矩阵11000cossin0sincos1yxyxPRP)(12二维缩放矩阵110000001yxssyxyxPssSPyx),(13逆变换 对于平移变换,通过对平移距离取负值得到逆变换逆旋转通过用旋转角度的负值取代该旋转角来实现将缩放系数用其倒数来取代就得到了缩放变换的逆矩阵变换矩阵与其逆

3、矩阵的乘积为单位阵14二维复合变换利用矩阵表达式,可以通过计算单个变换的矩阵乘积,将任意的变换序列组成复合变换矩阵例如,对点位置P进行两次变换:PMMP12PM 15复合二维平移10010011001001100100121211122yyxxyxyxtttttttt),(),(),(21211122yyxxyxyxttTttTttT16复合二维旋转)()()(2112RRRPRP)(21 通过两个旋转矩阵相乘,可以证明两个连续的旋转是相加的。17复合二维缩放10000001000000100000021211122yyxxyxyxssssssss),(),(),(21211122yyxxyx

4、yxssssSssSssS18通用二维基准点旋转平移对象使其基准点位置移动到坐标原点绕坐标原点旋转平移对象使其回到原始位置19通用二维基准点旋转10010011000cossin0sincos1001001rrrryxyx100sin)cos1 (cossinsin)cos1 (sincosrrrrxyyx20通用二维固定点缩放平移对象使固定点与坐标原点重合对于坐标原点进行缩放使用步骤1的反向平移将对象返回到原始位置21通用二维固定点缩放100)1 (0)1 (0100100110000001001001yfyxfxffyxffsyssxsyxssyx),(),(),(),(yxffffyxf

5、fssyxSyxTssSyxT22其他二维变换反射产生对象镜像的变换成为反射对于一个二维反射而言,其反射镜像通过将对象绕反射轴旋转180度而生成。23反射变换24反射变换25其他变换错切错切是一种使对象形状发生变化的变换,经过错切的对象好像是由已经相互滑动的内部夹层组成两种常用的错切变换是移动x坐标值的错切和移动y坐标值的错切26错切变换移动x坐标值27二维坐标系间的变换计算机图形应用经常需要在场景处理的各个阶段将对象的描述从一个坐标系变换到另一个坐标系在另一些情况下,需要使用非笛卡儿参考系进行描述需要使用坐标系间的变换28二维坐标系间的变换29二维坐标系间的变换考虑从一个二维笛卡儿坐标系到另

6、一个笛卡儿坐标系的转换建立把xy轴叠加到xy轴的变换1、将xy系统的坐标原点(x0,y0)平移到xy系统的原点(0,0)2、将x轴旋转到x轴上),()(00,yxTRMyxxy30三维空间的几何变换三维几何变换的方法是在二维方法的基础上考虑了z坐标而得到的。一个三维位置在齐次坐标中表示为4元列向量每一个几何变换操作是一个从左边去乘坐标向量的44矩阵31三维平移32三维平移zyxtzztyytxx110000000100011zyxtttzyxzyx33三维旋转三维空间中,可以绕任意轴旋转一个对象其中绕平行坐标轴的旋转是最容易处理的三维坐标轴旋转一般三维旋转34三维坐标轴旋转在二维平面中的旋转相

7、当于三维空间中绕z轴旋转zzyxyyxxcossinsincos35三维坐标轴旋转X轴坐标不变,循环替代x、y、z三个轴可以得到绕x轴旋转的公式xxzyzzyycossinsincos36三维坐标轴旋转y轴坐标不变,循环替代x、y、z三个轴可以得到绕y轴旋转的公式yyxzxxzzcossinsincos37一般三维旋转对于绕与坐标轴不重合的轴进行旋转的变换矩阵,可以利用平移与坐标轴旋转的复合而得到首先将指定旋转轴经移动和旋转变换到坐标轴之一,然后对该坐标轴应用适当的旋转矩阵最后将旋转轴变回到原来位置38一般三维旋转平移对象使得旋转轴通过坐标原点旋转对象使得旋转轴与某一坐标轴重合绕坐标轴完成指定

8、的旋转利用逆旋转使旋转轴回到原始方向利用逆平移使旋转轴回到原始位置39一般三维旋转推导步骤40一般三维旋转1),(12121212zzyyxxPPV),(cbaVVuVxxa12Vyyb12Vzzc1241一般三维旋转20000100010001111zyxT42一般三维旋转3100000000001)(dcdbdbdcRx000000001000)(daadRy43一般三维旋转41000010000cossin00sincos)(zR44一般三维旋转5TRRRRRTRxyzyx)()()()()()(11145三维缩放相对于原点110000000000001zyxssszyxzyx46三维缩

9、放相对于任意点平移给定点到原点使用前面的公式相对于坐标原点缩放对象平移给定点回到原始位置47三维缩放相对于任意点),(),(),(fffzyxfffzyxTsssSzyxT1000)1 (00)1 (00)1 (00fzzfyyfxxzssyssxss48基本OpenGL几何变换函数44平移矩阵glTranslate*(tx,ty,tz)44旋转矩阵glRotate*(theta,vx,vy,vz)44缩放矩阵glScale*(sx,sy,sz)49OpenGL矩阵操作建模观察模式glMatrixMode(GL_MODELVIEW);设定当前矩阵为单位矩阵glLoadIdentiy();为当前矩阵的元素赋值glLoadMatrix*(elements16);50OpenGL几何变换编程示例glMatrixMode (GL_MODELVIEW);glColor3f (0.0, 0.0, 1.0);glRecti (50, 100, 200, 150);/显示蓝色矩形glColor3f (1.0, 0.0, 0.0);glTranslatef (-200.0, -50.0, 0.0);glRecti (50, 100, 200, 150);/显示红色、平移后矩形glLoadIdentity ();glRotatef (90.

温馨提示

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

评论

0/150

提交评论