矩阵论——三维图形应用_第1页
矩阵论——三维图形应用_第2页
矩阵论——三维图形应用_第3页
矩阵论——三维图形应用_第4页
矩阵论——三维图形应用_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、矩阵在计算机三维图形变换中的应用姓名: 余 章 权 学号: 07127011 班级: 071271 学院: 数学与统计学院 07127011 余章权矩阵在计算机三维图形变换中的应用 摘要:论述如何利用矩阵的变换性质实现计算机的三维图形变换,主要是通过平移、缩放和旋转三种基本变换的组合来实现的,利用矩阵可以是图形处理高速化。关键词: 平移、缩放、旋转1 引言三维图形图像的处理,显示和形体构造需要使用三维几何变换,这些变换是通过基本的平移,缩放和旋转组合而成的,每一个变化都可以表示为矩阵变换的形式,通过矩阵的相乘或连续可以构造复杂的变换。2 矩阵与图形变换计算机对图形的处理,经常用到各种变换,若用

2、解析式表示坐标变换,计算过程和缩放程序都很复杂,用矩阵表示图形的坐标变换,特别是复合变换就显得比较简单,利用矩阵进行计算,可使图形处理高速化。事实上,对于一个空间图形,图形上每一个点都对应着唯一的坐标(x,y,z),它的标准化齐次坐标为一个四维的向量。设T为4 X 4变换矩阵:其个元素的性质为:a,b,c,d,e,f,g,h,i产生比例,反射,旋转,错位变换,l,m,n产生沿x轴,y轴,z轴的平等移动。P,q,r产生透视变换,s产生全比例变换。利用变换矩阵T可以对三维坐标进行各种变换,其基本关系式为:一般地,对图形对平移变换的变换矩阵为:其中l,m,n分别沿x轴,y轴,z轴的方向的平移量,其坐

3、标关系式为:对图形做比例变换矩阵为:a,e,i分别表示坐标x,y,z的放大率,其坐标关系为:当a,e,i均等于1时,则变换矩阵为:T=这时T产生全比例变换,其中S为整个图形的放大率,当s1时整个图形缩小,当s1时整个图形放大。对图形作错移变换的变换矩阵为:T=对图形作关于xoy平面的反射变换的变换矩阵为:T=将图形绕x轴旋转角的变换矩阵为:T=将图形绕y轴旋转角的变换矩阵为:T=如果要对图形连续施行几种变换,则它的变换矩阵就是几个相应变换后矩阵的乘积,如对点A(x,y,z)先作比例变换,然后再绕y轴旋转角,则新旧坐标关系为:(x,y,z,1)=3 利用矩阵进行三维图形变换 设三维孔家那种任意一

4、点的齐次坐标p(x,y,z,1),作三维图形得打的点的齐次坐标为p(x,y,z,1)可得下面三维图形集合变换矩阵。3.1 平移变换平移变换课将指定形体从当前位置移到一个新的位置,而不改变其方向和大小。式中,Dx,Dy,Dz 分别是沿x轴,y轴,z轴方向上的平移量,图1是三维平移变换示意图。3.2 比例变换 比例缩放变换指定形体的大小,该比例变换以坐标原点为参考点,上式中的分别是沿x轴,y轴,z轴方向上的缩放比例,图2是以坐标原点为参考点的三维比例变换示意图。 如果要以三维空间中的任意一点(x0,y0,z0)为参考点作比例变换,先平移至原点作比例变换后再平移回到点(x0,y0,z0),比例变换矩

5、阵为:3.3 旋转变换三维旋转变换是指空间形体绕坐标轴旋转角,旋转的正方向通常按右手定则确定,即右手拇指指向转轴方向,其余四指指向便是旋转角的正交(如图3)。旋转变换后形体的大小和形状不发生变化,只是空间位置相对原位置发生了变化。绕x轴旋转:,其中为图形绕x轴旋转的角度;绕y轴旋转:其中为图形绕y轴旋转的角度;绕z轴旋转:其中为图形绕z轴旋转的角度。4 旋转矩阵 设o-x1y1z1和o-xkykzk是以o为同一原点的不同坐标系,对应的基向量分别为和,则同一矢量可以用两种不同的基表示出来。,其中为向量的坐标阵列,右边等式的两边用点乘,得到:,其中Alk为3X3标量矩阵,定义为:由此式可以判断,相

6、同元素之间的选择矩阵为三阶单位矩阵,即All(Akk)=E,并且于实际情况符合。我们用以下算例来实现旋转阵的应用:5 三维图形变换的统一矩阵面计算机绘制物体的投影图,是将三维空间的物体用二维平面上的图形来表示,因此,需要进行图形变换,而进行图形变换行之有效的方法是矩阵机器运算。常用的三维图形变换矩阵有绕z轴的旋转矩阵S1,绕x轴的旋转矩阵S2,平移矩阵S3,向y面的正投影矩阵S4,它们分别为其中分别为绕z轴和x轴旋转的角度,l,m,n为平移参数6 计算机三维变换使用矩阵Direct 3D使用矩阵来执行3D变换,解释了矩阵是如何来建立三维变换。描述了一些变换的基本用法以及如何通过矩阵合并来完成复

7、杂的变换,平移Translation旋转Rotation,缩放Scaling。在Direct 3D程序中,平移矩阵也可以使用D3dutil.cpp矩阵中的Translate辅助函数来创建此矩阵,下面的例子展示了Translate函数的源码:D3DMATRIX Translate(canst float dx. Const float dy. Const float dz)D3DMTR x ret=identity Matrix();Ret(3. 0)=dx;Ret(3. 1)=dy;Ret(3. 2)=dz;Return=ret; end of Translate()使用 D3dutil.cp

8、p 文件中的Rotate x 和Rotate y 和Rotate z 辅助函数来创建放置矩阵,下面是Rotate x函数的代码:D3DMATRIX.Rotatex(const float rads) float const sine;const =cos(rads);sine =sin(rads);D3DMATRIX ret=identity Matrix();Ret(1 .1)=consine;Ret(2 .2)=consine;Ret(1 .2)=-sine;Ret(2 .1)=sine;Rerurn ret;/end of Rotatx()7 结语上述推导出的计算机三维图形变换,怎样利用矩阵的变换性质,可以通过平移比例变化和旋转三种基本变换的组合来实现,尤其是它的旋转变换需要知道旋转角和旋转轴。参考文献:1王汝传.计算机图形学M.北京:人民邮电出版社,2002.1801892何援军.计算机图形学M.北京:机械工业出版社,2006.87913焦永广.计算机图形学教程M.北京:理工大学出

温馨提示

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

评论

0/150

提交评论