第四章 图形变换_第1页
第四章 图形变换_第2页
第四章 图形变换_第3页
第四章 图形变换_第4页
第四章 图形变换_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

1、主讲:刘圣军Email: 12图形变换是计算机图形学的基础内容之一,是图形显示过程中必不可少的一个环节,变换本身也是描述图形的一个有力工具。主要介绍二维、三维几何变换以及窗口到视区的变换。图形的几何变换是指对图形的几何信息经过平移、比例、旋转等变换后产生新的图形,是图形在方向、尺寸和形状方面的变换。窗口到视区的变换是指建立从世界坐标系中的窗口到设备坐标系中的视区的变换。3矢量 n元组,对应n维空间中的一个点,代表物体在空间中的位置或者运动的状态。 三维矢量。 矢量运算 矢量和 矢量的数乘 矢量的点积 矢量的长度(模) 矢量的叉积4矢量运算5zyxzzyyxxzyxzyxukukukUkvuvu

2、vuVUvvvVuuuU;,yxyxzxzxzyzyzyxzyxzyxzzyyxxuvvuvuuvuvvuvvvuuukjiVUVUVUuuuUUUvuvuvuVUcos;222矩阵 mn阶矩阵A定义为 零矩阵 n阶矩阵,n阶方阵 行向量,列向量 单位矩阵(I)6mnmmnnaaaaaaaaaA212222111211矩阵运算 矩阵的加法 矩阵的数乘 矩阵的乘法 矩阵的转置 行列互换 矩阵的逆 矩阵A可逆的充分必要条件是A为非奇异矩阵(其行列式不为零)。7平移变换平移变换在二维坐标系中,将点P(x,y)在x、y方向分别平移tx,ty,得点 ,则它们的相互关系为:8)y,x(Pyxtyytxx矢

3、量形式为:TPP其中:yxttT,yxP,yxPPPT旋转变换旋转变换给定点P(x,y),其极坐标为:9sinrycosrx将它绕坐标原点旋转,得 ,则:cossinsincosRPRPcosysinxysinycosxxcosysinxcossinrsincosr)sin(rysinycosxsinsinrcoscosr)cos(rx,其中P(x,y)y,x(P)y,x (P放缩变换放缩变换点P(x,y)在x方向和y方向分别放缩Sx和Sy倍,有10ysyxsxyx矩阵表示为:yxs00sSPSP,其中放缩变化是相对于坐标原点的。当它作用于物体时,不仅改变了物体的形状,也改变了它离原点的距离。

4、放缩比例Sx和Sy可以相等,也可以不相等。实际绘图需对图形进行连续变换,这样对图形上的每个点需要按前面给出的式子计算,计算量较大,如果只对图形对象进行旋转和放缩两类变换,则可以通过首先将两变换合成一个复合变换,将两次运算转换成一次性的矩阵与向量运算,如先旋转,再放缩,有:11 cosssinssinscosscossinsincoss00sRSAPAPRSPSPyyxxyx其中:这样,对图像上每点做上述变换时,只要用A乘点的坐标就可以了。但如果在变换中加入平移变换,就不容易合并,因为平移和旋转、放缩变换的表示形式不一样:平移为一个矢量的加法,旋转和放缩为一个矩阵的乘法。为了使得变换的表示形式一

5、致,引入齐次坐标。所谓齐次坐标是用n+1维向量表示一个n维向量。在n维空间中的位置向量用非齐次坐标表示时,具有n个坐标分量(P1, P2, Pn),而且是唯一的。若用齐次坐标表示,此向量有n+1个坐标分量(hP1, hP2, hPn,h),且不唯一。则二维点(x,y)对应的齐次坐标为(hx,hy,h),那么(x,y,1)也表示(x,y)的齐次坐标。12用齐次坐标表示,几种基本变换为131yx)t ,t (T1yx100t10t011yxyxyx1yx)(R1yx1000cossin0sincos1yx1yx)s ,s ( S1yx1000s000s1yxyxyx两个连续平移是加性的14连续比例

6、变换是相乘的15两个连续旋转是相加的1617几何变换均可表示成P=TP=T* * P P的形式的形式复合变换是指 图形作一次以上的几何变换,变换结果是每次的变换矩阵相乘。 任何一复杂的几何变换都可以看作基本几何变换的组合形式。前面介绍的旋转变换和放缩变换的参照点都是坐标原点。构造关于任意参照点的旋转和放缩变换变换合成。18关于任意参照点关于任意参照点P Pr r(x(xr r, y, yr r) )的旋转变换的旋转变换 绕Pr点旋转角通过下面三个基本变换来实现: 平移使Pr点落于坐标原点,变换矩阵T(-xr, -yr)。 旋转角,变换矩阵为R(). 平移使位于原点的Pr点返回原位置,变换矩阵为

7、T(xr,yr)。19记其变换矩阵为R(xr, yr;),则:20)y,x(T)(R)y,x(T);y,x(Rrrrrrr100sinx)cos1 (ycossinsiny)cos1 (xsincos100y10 x011000cossin0sincos100y10 x01rrrrrrrr关于任意参照点关于任意参照点P Pr r(x(xr r, y, yr r) )的放缩变换的放缩变换 关于Pr点放缩(sx, sy)通过下面三个基本变换来实现: 平移使Pr点落于坐标原点,变换矩阵T(-xr, -yr) 。 放缩(sx, sy),变换矩阵为S(sx, sy). 平移使位于原点的Pr点返回原位置,

8、变换矩阵为T(xr,yr)。2122记其变换矩阵为S(xr, yr; sx, sy),则:)y,x(T)s ,s (S)y,x(T)s ,s ;y,x(Rrryxrryxrr100)s1 (ys0)s1 (x0s100y10 x011000s000s100y10 x01yryxrxrryxrr我们需要对一个图形对象进行复杂的变换时。并不直接去计算这个变换,而是将其分解成多个基本变换,再依次用它们作用于图形。变换合成时,矩阵相乘的顺序是:先作用的变换放在连乘式的右端,后作用的变换放在连乘式的左端,由于矩阵乘法不满足交换率,只有在特殊情况下,矩阵的顺序才可交换。23举例:设Translate2D(

9、)和Rotata2D()分别是对图形对象进行二维平移变换和旋转变换的函数,House()是图形对象绘制函数,设(1)是House()显示的图形,左下角点为P(1,0),执行下面程序后得(2)24先平移后旋转:Translate2D(1,0);Rotate2D(45);House();(1)(2)P(1,0)2, 2(P25将变换顺序颠倒一下,得先旋转后平移:Rotate2D(45);Translate2D(1,0);House();P(1,0)2/2, 2/21 (P 在上面两个程序中,先调用的变换先执行,后调用的变换后执行,体现在矩阵合成时,先调用的变换放在连乘式的右边,后调用的变换放在连乘

10、式的左边,这种变换模式称为固定坐标系模式。它的特点是连续执行几次变换时,每一次变换均可看成相对于原始坐标系进行的。另一种模式称为活动坐标系模式,在此模式下,连续执行几个变换时,变换矩阵的合并方式恰好和固定坐标系模式相反。即先调用的变换放在连乘式的左边,后调用的变换放在连乘式的右边。体现在程序执行顺序上,先调用的变换后执行,后调用的变换先执行(堆栈实现)。这种变换模式的特点是每一次变换可看成是前一次变换后所形成的新坐标系中进行的(变换作用于坐标系)。2627)O(OO y yxx 28对称变换 对称变换后的图形是原图形关于某一轴线或原点的镜像。 关于关于x x轴对称轴对称29 关于关于y y轴对

11、称轴对称30 关于原点对称关于原点对称31 关于关于y=xy=x轴对称轴对称32 关于关于y=-xy=-x轴对称轴对称3334错切变换 也称为剪切、错位变换,用于产生弹性物体的变形处理。其变换矩阵为 参数b、c变化使图形产生变化: 沿x方向错切(b变化,c不变) 沿y方向错切(b不变,c变化) 两个方向错切(b变化,c变化)35仿射变换 二维仿射变换是具有如下形式的二维坐标变换 矩阵表示形式为:36仿射变换的性质 仿射变换具有平行线不变性和有限点数目的不变性 平移、比例、旋转、错切和反射等变换均是二维仿射变换的特例,反过来,任何常用的二维仿射变换总可以表示为这五种变换的复合。3738ifche

12、bgdaTD2做伸缩变换。是对整体图形是对图形作投影变换,移变换,是对图形进行平等变换,放、旋转、对称,错切是对图形进行缩中,在变换矩阵的四个部分ifchgebda各部分不同的取值可以得到不同的变换矩阵。二维图形变换的变换矩阵一般形式为对某任意一直线段作反射变换,其变换的过程是 平移变换 旋转变换 针对坐标轴进行二维几何变换; 反向旋转 逆向平移39例. 相对直线y=2*x的反射变换40例. 相对直线y=2*x的反射变换41例. 相对直线y=2*x的反射变换42例. 将正方形ABCO各点沿图所示的(0,0)(1,1)方向进行拉伸,结果为如图所示的,写出其变换矩阵和变换过程。43例. 将正方形A

13、BCO各点沿图所示的(0,0)(1,1)方向进行拉伸,结果为如图所示的,写出其变换矩阵和变换过程。44例. 将正方形ABCO各点沿图所示的(0,0)(1,1)方向进行拉伸,结果为如图所示的,写出其变换矩阵和变换过程。45直线的中点不变性;平行直线不变性;相交不变性;仅包含旋转、平移和反射的仿射变换维持角度和长度的不变性;比例变化可改变图形的大小和形状;错切变化引起图形角度关系的改变,甚至导致图形发生畸变。46世界坐标系(用户坐标系)和设备坐标系(屏幕坐标系) 世界坐标系:用户按照自己熟悉的方式建立的坐标系。相对于物体的坐标系为局部坐标系。 设备坐标系:在显示屏幕上定义的二维直角坐标系。该坐标系

14、的坐标轴取成平行于屏幕的边缘,长度为一个像素的长度,坐标取成整数,坐标系的原点和方向随显示设备的不同而不同。图形的显示 由于屏幕有限及某些特殊应用的要求,需要定义裁剪窗口(世界坐标系)进行裁剪。47问题:如何方便地实现在显示设备上对二维图形进行观察?基本概念 在计算机图形学中,将在世界坐标系中需要进行观察和处理的一个坐标区域称为窗口(Window)。 将窗口映射到显示设备上的坐标区域称为视区(Viewport)。4849将观察坐标系原点移动到世界坐标系原点绕原点旋转使两坐标系重合50 原来定义的裁剪是在世界坐标系下进行的。在屏幕上定义的矩形窗口,我们称为视区,用来指定窗口内的图形在屏幕上显示的

15、大小及位置。窗口和视区分别处在不同的坐标系,它们所用的长度单位、大小、位置均不同,要将窗口内的图形在视区中显示出来,需经过窗口到视区的变换。 二维图形的显示流程如下51世界坐标系内的变换关于窗口的裁剪窗口到视区的变换扫描转换显示世 界坐标系设 备坐标系52给定一个窗口和视区,用变换合成的方法建立从世界坐标系中窗口到设备坐标系中视区的变换。在世界坐标系中Oxy,假设窗口左下角坐标为(xmin,ymin),两边的长度为Ex,Ey。在设备坐标系Ouv中,视区左下角坐标为(umin,vmin),两边的长度为Eu,Ev。可按如下步骤求出窗口到视区的变换: 在世界坐标系Oxy中,平移使(xmin,ymin

16、)到原点。 放缩使窗口和视区的大小相等,变换 。 在设备坐标系Ouv中,平移使窗口和视区重合。53)EE,EE(Syvxu54100vEEyEE0uEEx0EE100y10 x011000EE000EE100v10u01)y,x(T)EE,EE(S)v,u(TMminyvminyvminxuminxuminminyvxuminminminminyvxuminmin这样,窗口到视区的变换矩阵为:假设窗口的边和坐标轴轴不平行,首先对窗口进行定义,给定参数(xmin,ymin), Ex,Ey ,还要给定一个转角,用类似的步骤建立窗口到视区的变换。 在世界坐标系Oxy中,平移使(xmin,ymin)到

17、原点。 旋转使窗口边和坐标轴重合,变换为R(- )。 放缩使窗口和视区的大小相等,变换 。 在设备坐标系Ouv中,平移使窗口和视区重合。55)EE,EE(Syvxu56100v)cosysinx(EEcosEEsinEEu)sinycosx(EEsinEEcosEE100y10 x011000cossin0sincos1000EE000EE100v10u01)y,x(T)(R)EE,EE(S)v,u(TMminminminyvyvyvminminminxuxuxuminminyvxuminminminminyvxuminmin总的变换矩阵为:57在三维齐次坐标系下讨论,其变换矩阵的一般形式是:

18、44434241343332312423222114131211D3aaaaaaaaaaaaaaaaT此矩阵分成四块,各块进行变换产生的效果和二维图形是一致的。三维基本几何变换都是相对于坐标原点和坐标轴进行的几何变换下面均是假设三维形体变换前一点为p(x,y,z),变换后的点为p(x,y,z)。58平移变换 设任意点P(x,y,z)经过平移矩阵T的变换后得到点P(x,y,z)59缩放变换 点P=(x,y,z)相对于坐标原点的缩放变换矩阵表示为 其中,sx,sy和sz为指定的任意正值.60缩放变换 上式的变换对物体的所方式的物体大小和相对于坐标原点的物体位置发生变化。61旋转变换 物体进行旋转变

19、换时,必须指定一个旋转轴和一个旋转角度。二维的旋转仅发生在xy平面上,而三维旋转则可指定为空间中任意直线进行。 旋转方向正向采用右手法则62旋转变换 二维绕原点旋转式子63旋转变换 由二维推广到三维,绕z轴的旋转方程式为64旋转变换 绕x轴的旋转方程式为 绕y轴的旋转方程式为6566反射 在二维变换下,反射变换是以线和点为基准,在三维变换下,反射变换则是以面、线、点为基准的。67错切 错切变换可以修改三维物体的形状沿X轴方向错切变换矩阵,Y、Z 轴方向坐标不变68错切 关于XY平面的错切 这个矩阵变换的效果是:使用一个与z值成比例的数值来改变x和y的坐标值,同时保持z坐标不变。69错切 在三维

20、空间中,产生对z轴错切的矩阵为:X、Y 轴方向坐标不变701000z )s1 (s00y)s1 (0s0 x)s1 (00s1000z100y010 x00110000s0000s0000s1000z100y010 x001)z,y,x(T)s ,s ,s ( S)z ,y,x(T)s ,s ,s ;P( Srzzryyrxxrrrzyxrrrrrrzyxrrrzyxr以Pr(xr, yr, zr)为参照点的放缩变换 例:相对于F(xf,yf,zf)点进行比例变换,比例变换步骤如下7172 绕空间任意轴AB旋转角的变换:设旋转轴AB由A(xa, ya, za)及其方向数(a,b,c)定义,空间

21、任意一点P(x,y,z)绕AB旋转角到P*(x*, y*, z*),则:Rab就是要求的变换矩阵,求Rab的基本思路是:以A(xa, ya, za)为原点,并使AB绕X轴和Y轴旋转适当角度与Z轴重合,再绕Z轴旋转角,最后再做上述变换的逆变换,使原点回到原来原点的位置。1zyxR1zyxab*731000z100y010 x001TaaaA 基本步骤如下: A点平移到坐标原点,原来的AB则变成OB,这条轴的方向数仍为(a,b,c)。OXYZBA)c,b,a(OXYZ)c,b,a(A) B74OXYZBvC)c,b,a(bc10000v/ cv/b00v/bv/ c0000110000cossin

22、00sincos00001Rxvbvccbv/sin,/cos,22经旋转角后,OB就落在XOZ平面上了。 让平面BO B”,绕X轴旋转角,见图,是OB在YOZ平面的投影OB”与Z轴的夹角,故有:(A) B 再让OB绕Y轴旋转角与Z轴重合,见图,此时从Z轴往原点看,角是顺时针方向,故其取负值,有:因OA是单位矢量,故u=1。75OXYZB av222cbaOAu10000v0a00100a0v10000cos0sin00100sin0cosRyau/asin, vu/vcos(A) 经以上三步变换后,P绕AB旋转变为绕Z轴旋转角。 再求Ry , Rx , TA ,的逆变换76100001000

23、0cossin00sincosRz10000000100010000cos0sin00100sin0cos1vaavRy7710000/00/0000110000cossin00sincos000011vcvbvbvcRx10001000100011aaaAzyxTAxyz1y1x1AabTRRRRRTR所以,78下面举例讨论如何建立变换矩阵以实现将旋转轴变换到x轴,以及如何将旋转周变回原来的位置。如图79下面举例讨论如何建立变换矩阵以实现将旋转轴变换到x轴,以及如何将旋转周变回原来的位置。如图80818283,其中在坐标系和假设两个坐标系uvnOOxyz。中,记该变换为中的图形变换到要将,它们是正交的。现在,数分别是坐标系中,它们的方向单位向量,在中三个坐标轴方向上的坐标系分别是新,的坐标为中,uvnxyzzyxzyxzyxzyxMuvnOOx

温馨提示

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

评论

0/150

提交评论