1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,2017/10/9,#,图形变换的矩阵方法,Chapter3,学习目标,3.1,节,理解,图形,变换基本术语及图形的矩阵表示,3.2,节,理解,坐标系,矩阵及图形变换与矩阵乘法的关系,3.3,节,掌握,图形,变换的基本形式,3.4,节,掌握,二,维图形变换的数学表示,3.5,节,理解,齐次坐标,与齐次坐标矩阵,3.6,节,理解,图形,的组合变换及其数学表示,3.7,节,掌握,图形,逆变换的矩阵,*3.8,节,了解,三维,图形变换矩阵,3.9,节,理解,2D,图形变换举例,海底总动员,、,怪兽电力公司,、,玩具总动员,等非常有
2、人气的动画电影,基本都是电脑动画。而,电脑动画基本上就是数学的世界,,都是计算出来的,。,第二章学习了向量、矩阵、行列式,,你,或许还是模糊不清,心里说花这么多时间学习这些完全和生活实际对应不上的东西,,,并没有多大意义,当你越深入软件编程开发,你将越清楚看到在图形编程、机器学习领域,向量和矩阵无处,不在,。,3.1,图形变换,概述,3.1.1,图形,与,图像,图形通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成。因此,图形通常用形状参数(即数学表达式)和属性参数表示,。,图形分为二维(,2D,)图形和三维(,3D,)图形,使某一图形运动得到的动态图形称为动画(,Anim
3、ation,),。,图像(,Image,)是图片、图画、照片、影像的总称。计算机图像又称为数字图像,数字图像的基本单元叫做像素,每个像素具有灰度或颜色信息。如分辨率为,,,就是水平方向,1024,个像素,垂直方向,768,个像素显示图像画面。,由二维图像运动产生的动态图像称为视频(,Video,,,Movie,)。,计算机图形学是研究怎样在计算机内表示、生成、处理和输出图形,应用计算机技术合成具有真实感的数字图像、动画和视频的一门学科,。,计算机产生图形的过程大致可分为三,步,图形输入,图形处理,图形输出,如,图所,示,,用矩阵表示为,计算机中图形是用图形的顶点坐标矩阵表示,若用,n,维向量,
4、表示,n,维空间一个点的坐标,那么,n,维空间,m,个点的坐标是,m,个,n,维向量的集合,即一个,矩阵,3.1.2,图形,变换,图形变换一般是指对图形的几何属性经过平移、缩放、旋转、翻折、错切、投影等操作后产生新图形的过程。,图形变换实质上是点的坐标值变化,知道某一点的坐标,怎样描述变换后这点的坐标值,这项技术的术语名称是“,坐标变换,”。如果图形上每一个点都进行同一变换,即可得到该图形的变换。对于线框图形的变换,通常是变换每个顶点的坐标,连接新的顶点序列即可产生变换后的图形,对于曲线、曲面等图形变换,一般通过对其参数方程做变换来实现对整个图形的变换。,有两种不同的变换方法:,一种是图形不动
5、坐标系变动,,变换前和变换后图形是针对不同坐标系而言,变动后该图形在新坐标系里具有新的坐标值,称之为几何变换;,另一种是坐标系不动,图形改变,,变换前和变换后的坐标值是针对同一坐标系而言,称之为坐标变换。这两种变换在某种意义上是等价的,将图形变换一个量等价于将坐标系变换一个,相反,的量,实际应用中,后一种图形变换更有实际意义。,3.2,图形变换与矩阵乘法,人,是三维空间里的对象,人可以在三维空间里运动,移动位置就是对象的运动。所以,,,程序员眼中的,“空间”是,一个,容纳,运动,的对象,集合,即构成“空间”的要素为对象、对象的运动,。空间,对象的运动称为变换,变换规定了对应空间的运动。数学上
6、是如何表示空间对象和空间变换呢,?,在线性代数中,用向量表示一个对象,矩阵表示什么呢?矩阵在不同的环境中有不同的语义,在同一环境中也可以有不同的解读,最常见的,包括:,(,1,),表示,一个线性变换,;,(,2,),表,示列向量或行向量的集合(多个对象),;,(,3,),表示,子矩阵的集合。矩阵作为一个整体对应的是线性变换语义。比如要实现图形旋转,数学上的作法就是用旋转变换矩阵按矩阵乘法规则乘以图形矩阵,就能实现所要图形旋转效果了。,变换,3.2,坐标系矩阵,3.2.1,坐标系,矩阵,请说说你对坐标系的认识,你知道的坐标系有哪些?,请问:向量,(,1,0,)和(,0,1,),向量(,1,0,0
7、0,1,0,)和(,0,0,1,),向量(,1,2,)和(,3,4,),向量(,2,2,)和(,3,3,)能否构成坐标系?构成怎样的坐标系?,假设,是,平面上两个不共线的向量,称为一组,基,,根据,平面向量的基本定理,,对于这个平面内的任意,向量,,,都可以用这组基线性表示,即,。,这组不共线的向量,就构成平面的一个,坐标系,,为向量,在这组基下的坐标,即,若,向量,(1,0),=(0,1),,,是,平面直角坐标系中,x,轴和,y,轴上的单位基向量,。,平面内任,一向量,v,=(2,-3),可表示为,。用矩阵运算表示为:,v=,1,、若矩阵,的每一列解释为平面坐标系的基,,a,计算,
8、u,u,与向量,是否相同?,从以上向量与坐标系的基向量矩阵的乘法运算看到:,列向量,右,乘,(行向量左乘),坐标系,的基向量矩阵,就变成一个新的向量,向量的起点终点坐标同时也变化,了,。,因此,向量,乘,以坐标系的基矩阵,相当于,对原向量,进行,了一次,坐标变换,。,向量,就是三维直角坐标系中,x,轴,、,y,轴、,z,轴上的单位基向量。,空间内任一向量,v,=(4,1,-6),可表示为:,。,用矩阵运算表示为:,=,2,、设矩阵,的每一行为空间坐标系的基,,b=,。,计算,v,=,若有,P,a,=,b,,,我们就说,P,将向量,a,变换到向量,b,。从这个角度看,“变换”和“乘法”是等价的,
9、进行坐标变换等价于执行相应的矩阵乘法运算,图形变换可以通过对表示图形的坐标矩阵进行乘法运算来实现。,可见,向量和矩阵的运算是计算机图形处理技术的,数学基础,。,3.3,图形基本,变换,平移变换,:,是,指图形在坐标系的位置发生变化,而,大小,和形状,不变,.,点,(,x,y,),沿平移向量,(,a,b),(即沿,x,方向平移,a,,沿,y,方向平移,b,)至点,,平移前后点的坐标关系为:,3.3.1,平移变换,3.3.2,以坐标原点为基准点的缩放,变换,缩放变换,也称为比例变换,只改变图形的大小,不改变形状称为均匀比例变换,图形的大小和形状都发生改变,称为非均匀比例变换。通过缩放系数,与点的坐
10、标,(x,y),相乘而得,缩放前后坐标关系为,时,点的位置改变,图形均匀,缩小了,S,x,倍,如,图,3-4,,,ABC,变为,;,时,图形沿两轴方向非均匀变化,,产生畸形。,时,点的位置变了,图形均匀,放大了,S,x,倍,,如图,3-3,,,ABC,变为,;,图,3-3,图,3-4,旋转指图形绕,坐标原点,逆时针旋转一个角度,,,r,是点,(x,y),到,原点,的距离,,是点的原始角度,利用三角公式,3.3.3,绕,坐标原点的旋转变换,由于,,,所以,旋转前后坐标关系,为,(,图,3-5,,图,3-6,),图,3-5,图,3-6,3.3.4,翻,折变换,(,图,3-8,),(,图,3-7,)
11、翻折变换,又称对称变换、镜像变换、反射变换。我们熟悉的关于,x,轴对称、关于,y,轴对称、关于直线,y,=,x,对称、关于直线,y,=-,x,对称,就是把图形沿坐标轴或直线翻折,产生了镜像的效果。对称前后坐标关系为,(,1,),关于,x,轴对称:,(横坐标不变,纵坐标取反),(,2,)关于,y,轴对称:,(纵坐标不变,横坐标取反),(,3,)关于原点对称:,(横坐标、纵坐标取反),(,4,)关于直线,y,=,x,对称:,(横坐标与纵坐标互换),图,3-9,图,3-10,(,5,)关于直线,y,=-,x,对称:,(横坐标、纵坐标互换再取反,),图,3-11,3.3.5,错切变,换,错切变,换,
12、是图形沿某坐标方向产生不等量的移动而引起图形变形的一种,变换,,,经,过错切的对象好像是拉动互相滑动的组件而,成,。,常用,的错切变换,是,:,移动,x,坐标值的错,切,(沿,x,方向的错切),、,移动,y,坐标值的错,切,(沿,y,方向的错切),:,1,、,沿,x,方向错切:,y,乘以一个因子,c,加到,x,上,,(,沿,x,轴方向拉动图形,),其中:,c,错切系数。,cy,沿,x,方向的错切量(,x,坐标沿,x,方向的移动量)。,cy,0,,沿,x,方向错切(移动),;,cy,0,,沿,y,方向错切(移动);,bx,0,,沿,y,方向错切(移动);,b,=0,即,bx,=0,,,不错切(恒
13、等变换)。,A,B,C,D,D,A,B,C,A,B,C,D,D,A,B,C,变换特点:,变换后点的,x,坐标不变,,y,坐标平移了,bx,;,平行于,y,轴的直线变换后仍平行于,y,轴;,平行于,x,轴的直线变换后,,x,=0,的点不动,(,不动点,),,,x,0,的点沿,y,方向平移了,bx,,形成与,x,轴夹角为,的直线,且,tg,bx,/,x,b,。,bx,x,设二维平面的点,,变换后点,的坐标与,P,的坐标关系为,即,3.4.1,二,维图形,变换矩阵,向量也可以是,行向量,形式,但要注意此时变换矩阵,是变换方程组,系数矩阵,的,转置,。,我们分析了,“变换”,与“乘法”是等价,的,。,
14、利用,向量、矩阵做图形变换的工具,通过向量乘以变换矩阵来实现坐标变换,接下来,关键问题就是构造图形变换矩阵了。,向量为,列向量,形式,,称为,变换矩阵,,它是变换方程组,的系数矩阵。,3.4.2,基本图形,变换矩阵,数学上,通过,a,b,c,d,取不同的数值,实现不同的二维基本变换。,可表示二维图形的缩放变换、旋转变换、翻折变换、错切变换。,图形变换,变换矩阵,变换方程的矩阵形式,缩放变换,旋转变换,翻,折,变,换,关于,x,轴对称:,关于,y,轴对称:,关于原点对称:,关于直线,y=x,对称:,关于直线,y=-x,对称:,错,切,变,换,沿,x,方向错切:,沿,y,方向错切:,课堂练习,3.
15、4,2,、用矩阵方法计算下列图形变换,(,1,)将点(,2,1,)的横坐标伸长到原来的,3,倍,1,、点的坐标为行向量和列向量不同形式时,变换矩阵相同吗?与方程组中系数矩阵有什么关系?表一中,若点的坐标为行向量形式,写出各种变换的矩阵方程。,(,2,)将点,(2,1),逆时针旋转,90,度,(,3,)将点(,2,1,)关于,x,轴对称,3.5,齐次坐标与齐次变换矩阵,在变换矩阵,的条件下,我们讨论了,2D,图形的缩放、旋转、对称和错切变换。为何没有平移变换呢?,原因是变换矩阵,不具备对图形进行平移的功能。那么我们对,加以改进,增加一列,令,可表示平移变换,若进行,,根据矩阵乘法规则是不能相乘的
16、解决的办法给,加个尾巴,平移变换中,图形上任一点变换前后的坐标,满足,平移变换中,图形上任一点变换前后的,坐标,满足,为得到,,令,则有,把向量,改写成,,,就可以表示平移量为,m,的,平移变换了,,称为,的,齐次坐标,。,所谓,齐次坐标,就是用,n+1,维向量表示一个,n,维向量。设,n,维空间点对应一个,n,维向量,,则对于,,称,为这个,n,维向量的齐次坐标表示,,h,称为齐次项,,h,取,1,时,,称为标准化齐次坐标,。,如,,,(2,3),的齐次坐标为,(2,3,1),(4,6,2),(-2,-3,-1),(10,15,5),.,,,一个点的齐次坐标不是唯一的,.,3.5.1,齐次
17、坐标,3.5.2,普通,坐标与齐次坐标互相转换,(x,y),普通坐标,齐次坐标,把一个齐次坐标转换成普通坐标:,把前两个坐标除以第三个坐标,再去掉第三个分量,。,把平面一点普通坐标,(x,y),转换成齐次坐标:,x,y,乘以同一个非,0,数,h,加上第,3,个分量,h,,即,(hx,hy,h,),.,例,3.,1,将下列齐次坐标转换成普通坐标,齐次坐标,普通坐标,(,1,2,3,),(,2,4,6,),(,3,6,9,),(,a,2a,3a,),点,(1,2,3),(2,4,6),(3,6,9),(a,2a,3a),对应,2D,直角坐标系中的同一点,,,因此,这些点,是“齐次”,的,齐次坐标描
18、述缩放不变性,.,例,3.2,观察,下列各式,(,1,),(,2,),(,3,),(,4,),以上各式表明,:,通过,运算,,,不同,坐标系,中的点,对应的是同一个点。它反映了这样一个事实:平面同一个点在不同坐标系下的不同表示其实是等价的。,例,3.2,各式中,采用了,行向量,与矩阵乘法。向量也可采用,列向量,形式,进行,矩阵乘,法,时就要将,列向量,放在矩阵的,右边,,所乘的矩阵为原矩阵的转置。,即,,,采用列向量形式为,计算机图形学领域有两种不同的矩阵表示方法。,(1),图形上的点采用列向量表示,左边的矩阵表示各种变换。这是数学和计算机科学教科书中公认的标准表示法。(,2,)另一种表示法是
19、采用行向量表示点,右边的矩阵表示各种变换。有许多计算机图形文献中使用这种表示法。,3.5.3,二,维图形变换的齐次矩阵,对平面任一点进行平移量为,的平移变换,输入点,是三维向量,输出点,是二维向量,它们的坐标形式不一致。为此,将平移变换矩阵增加一行,扩充为,3,阶方阵,,输出点的坐标就是三维向量,这样输入坐标与输出坐标形式相同,。,采用齐次坐标描述点,就能使得平移、缩放、对称、旋转和错切变换矩阵统一成,。,形如,称为,2,D,直角坐标系中的齐次变换矩阵。其中左上角的二阶方阵,在变换功能上对图形进行,放缩、旋转、对称、错切,,左下角矩阵,对图形进行,投影,,右上角矩阵,对图形进行,平移,,右下角
20、的,对,图形整体,进行,伸缩变换,。,3.5.4,基本图形变换的齐次矩阵,例,3.3,给定点,(3,4),,求经平移量,(2,-1),平移,之后的,坐标,.,解,点,(3,4),的齐次坐标为,(3,4,1),,平移量为,(2,-1),平移矩阵为,(5,3,1),化为普通坐标,(5,3),,所以,点,(3,4),经,平移量,(,2,-1),平移之后的坐标为,(5,3),。,可见,对平面点的平移变换相当于这个点的齐次坐标(列向量形式),左乘,一个相应的平移齐次矩阵。,(,1,)书写点的,坐标用,行向量形式,可节省纸面。,(,2,)利用矩阵乘法实现图形对象的变换,与表一表二中的变换矩阵相乘时要求点的
21、坐标为,列向量,形式,且变换矩阵放在左边,点的坐标放在右边相乘。点的,坐标,若,采用,行向量,形式,那么表示点坐标的行向量要放在左边乘以变换矩阵的转置。这两种结果只是形式上的不同,互为转置关系。,例,3.4,写出将点(,2,3,)逆时针旋转,对应点的坐标和齐次坐标,并与旋转齐次矩阵乘法的结果比较。,解,点的坐标采用行向量,点(,2,3,)旋转后对应点坐标为,齐次坐标为,进行旋转齐次矩阵乘法,如果点的坐标采用列向量,点,逆时针旋转,对应点为,乘以旋转齐次矩阵为,课堂练习,3.5,1,、写出点,(5,,,-2),的三个齐次坐标,.,2,、把齐次坐标,(2,4,2),(-3,-6,-3),(4,8,
22、4),(3,2,1),(-4,2,2),(1.5,3,1.5).,化成普通坐标,是同一个点的齐次坐标吗?,3,、计算点,(-2,4),逆时针旋转,,再沿两轴均匀放大,3,倍的坐标值,.,3.6,组合变换,一,个变换由单一矩阵描述和表示,组合变换是一个接一个的变换序列,所以多个变换的组合应由表示每个变换的矩阵依次相乘(级联)描述。组合变换的,顺序,非常重要,矩阵乘法的顺序也很重要,要与变换顺序对应。,例,3.5,(,1,),将点(,3,3,)按平移量(,-2,4,)平移后,再逆时针旋转,,写出对应点的坐标和齐次,坐标,(,2,)将点(,3,3,)逆时针旋转,后,再按平移量(,-2,4,)平移,写
23、出对应点的坐标和,齐次坐标,解,点,(3,3),的齐次坐标为,(3,3,1),(,1,),按平移量平移(,-2,4,),再逆时针旋转,的组合变换矩阵为,点,(3,3),经过组合变换后对应点齐次坐标为,1),转换成普通坐标为,),(,2,),逆时针旋转,,再平移(,-2,4,)的变换矩阵为,点,(3,3),经过组合变换后对应点的齐次坐标为,(3,3,1),转换成普通坐标为,例,3.6,已知,各顶点坐标是,A(1,2),,,B(5,2),,,C(3,5),,关于直线,y=4,对称变换后的点为,,利用齐次坐标变换矩阵计算,的坐标值,.,解,点的坐标采用行向量形式,,各顶点的齐次坐标矩阵为,这个图形变
24、换问题分解为三个基本变换,(,1,)平移变换,将直线,y=4,向下平移至,x,轴,齐次坐标变换矩阵为,(,2,)关于,x,轴作对称变换,齐次坐标变换矩阵为,(,3,)平移变换,将直线向上移回原处,齐次坐标变换矩阵为,这三个变换的组合变换为,所以,,变换后对应点,的齐次坐标为,即,,各顶点坐标变换后对应点,的坐标为,(1,6),,,(5,6),,,(3,3),例,3.7,求绕坐标原点以外的任意一点,逆时针旋转,角的旋转变换矩阵,解,绕坐标原点以外的任意一点,逆时针旋转,角的旋转变换可分解为,(,1,),平移变换,使旋转中心平移到坐标原点,,,(,2,),旋转变换,绕坐标原点逆时针旋转,(,3,)
25、平移变换,将旋转中心,P,移回原处,,,所以,它们的组合变换矩阵为,课堂练习,3.6,1,、写出两个连续二维平移(两个连续二维旋转、两个连续二维缩放)变换的矩阵。,2,、写出图形关于平面内任意一点,进行缩放的变换矩阵。,3.7,逆变换,如果,存在一个变换能“撤销”原变换,那么原变换是可逆的,即向量,a,用矩阵,M,来进行变换,接着用,M,的逆,变换,结果得到原向量,a,.,求逆变换等价于求原变换矩阵的逆,。,矩阵的逆在几何上非常有用,可以计算变换的“反向”或“相反”变换。,图形的平移、缩放、旋转、对称、错切等基本变换都是可逆变换。,逆平移变换,通过对平移距离取负值而得到逆矩阵,因此平移变换,的
26、逆变换矩阵为,将缩放系数用其倒数代替得到缩放变换的逆矩阵,因此,缩放变换,的逆变换矩阵为,逆旋转通过用旋转角度的负值代替旋转角度来实现,因此旋转变换,的逆变换矩阵为,课堂练习,3.7,1,、绕原点逆时针旋转,的变换矩阵为,若要撤销这一变换,变换矩阵为,2,、写出对称变换、错切变换的逆变换矩阵。,*,3.8,三维,图形变换,三维,图形变换是在二维图形变换基础上考虑了,z,轴在三维空间中的扩展。因此,其基本变换与二维变换有着类似的扩展。仿照二维图形变换,用四维齐次坐标,xyz,1,表示三维空间的点,x,y,z,,,3D,齐次变换矩阵为:,图形变换,齐次变换矩阵,图形变换,齐次变换矩阵,平移变换,平
27、移量为,(l,m,p),关于,x,轴的对称变换,(x,坐标不变,,y,z,坐标取反,),放缩变换,比例系数为,关于,z,轴的对称变换,(z,坐标不变,,x,y,坐标取反,),绕,x,轴逆时针旋转,关于原点的对称变换,(x,y,z,坐标均取反,),绕,y,轴逆时针旋转,关于,xoy,平面的对称,(x,y,坐标不变,,z,坐标取反,),绕,z,轴逆时针旋转,关于,xoz,平面的对称,(x,z,坐标不变,,y,坐标取反,),课堂练习,3.8,1,、,构造矩阵,使物体的长、宽、高增加两倍,.,2,、,构造绕,z,轴旋转,的矩阵,.,3.9,平面图形,变换举例,例,3.8,第一章例,11Koch,雪花曲
28、线的,MATLAB,实现,程序运行结果,Koch,雪花,动态,谢尔宾斯基三角形,神奇的数学图形,例,3.9,试制作一个三角形沿一个圆周旋转的动画,要求旋转过程中三角形与圆的相对位置关系不变。,解,以圆周的圆心为原点,建立直角坐标系,假设三角形的顶点坐标为,(1,0),,,(1,1),,,(2,0),,则相应的齐次坐标为,,逆时针旋转,角度,相当于齐次坐标右乘齐次变换矩阵,算法的,N-S,如下,效果图,图形变换的实质是点的坐标值变化,,Pa=b,称,P,将向量,a,变换到向量,b,,,通过矩阵乘法,实现变换。,图形基本变换及变换矩阵,。,采用,齐次坐标描述点,所有二维图形变换统一成,组合变换,总结,谢谢大家!,






