1、2023/1/32023/1/3 几何变换 二维变换 齐次坐标系和二维变换的矩阵表示 二维变换的复合 窗口到视口的变换 效率问题 三维变换的矩阵表示 三维变换的复合 坐标系的变换二维及三维空间的变换概念、矩阵表示、三维视图二维、三维空间的变换概念及其矩阵表示二维、三维空间的变换概念及其矩阵表示2023/1/3几何变换几何变换本讲介绍计算机图形学经常用到的基本的二本讲介绍计算机图形学经常用到的基本的二维维和三和三维维几何变换,其几何变换,其中的平移变换、比例变换和旋转变换对很多图形应用程序来说极其中的平移变换、比例变换和旋转变换对很多图形应用程序来说极其重要。重要。许多应用程序或图形子程序软件包
2、需要用到各种变换,例如:一个许多应用程序或图形子程序软件包需要用到各种变换,例如:一个城市规划程序,利用平移变换将表示建筑物和树木的图符移到合适城市规划程序,利用平移变换将表示建筑物和树木的图符移到合适的位置,利用旋转变换确定图符的朝向,以及利用比例变换确定图的位置,利用旋转变换确定图符的朝向,以及利用比例变换确定图符的大小。一般来说,很多应用程序在绘图时都要用到几何变换来符的大小。一般来说,很多应用程序在绘图时都要用到几何变换来改变物体(也称为图符或模板)的位置、方向和大小。本讲还介绍改变物体(也称为图符或模板)的位置、方向和大小。本讲还介绍如何应用三维变换如何应用三维变换(旋转变换、平移变
3、换和比例变换旋转变换、平移变换和比例变换)作为创建三维作为创建三维物体的二维显示过程的一部分。物体的二维显示过程的一部分。2023/1/3 P=RP二维变换二维变换变换前 一座房子的平移变换.变换后 旋转变换矩阵旋转变换矩阵 房子的比例变换。两个方向上的变换比例不同,并且房子改变了位置。比例变换前 比例变换后旋转之前 旋转之后房子的旋转变换,旋转的同时也改变了位置。x=sx xy=sy yx=x+dx,dx=x-x y=y+dy,dy=y-y P=P+T平移变换平移变换比例变换矩阵比例变换矩阵2023/1/3旋转矩阵的推导旋转矩阵的推导小结小结rr正向旋转其中:2023/1/3齐次坐标系和二维
4、变换的矩阵表示齐次坐标系和二维变换的矩阵表示平移矩阵平移矩阵 齐次坐标表示齐次坐标表示P P=T+P =T+P P P=S=S P P P P=R=R P P希望能用一种一致的方法来表示这三种变换。希望能用一种一致的方法来表示这三种变换。将(将(x,y)x,y)附加第三个坐标,于是每个点的坐标都用附加第三个坐标,于是每个点的坐标都用一个三元组一个三元组(x,y,W)来来表示,称为点(表示,称为点(x x,y y)的齐次的齐次坐标。在齐次坐标系中,我们认为两组齐次坐标坐标。在齐次坐标系中,我们认为两组齐次坐标(x,y,W)和和(x,y,W)代表同一点当且仅当代表同一点当且仅当(x,y,W)与与(
5、x,y,W)互为互为倍数倍数,因此因此(2,3,6)和和(4,6,12)是用不同是用不同的三元组坐标表示的同一点。也就是说每个点齐次的三元组坐标表示的同一点。也就是说每个点齐次坐标不唯一。要求齐次坐标中至少有一个不为零,坐标不唯一。要求齐次坐标中至少有一个不为零,即即(0,0,0)是不允许的。如果坐标是不允许的。如果坐标W不为零,那么我不为零,那么我们可以用它作为除数:由们可以用它作为除数:由(x,y,W)得到得到(x/W,y/W,1),它们它们代表同一点。一般来说,当代表同一点。一般来说,当W不为零时,我们不为零时,我们采用采用W为为1 1的坐标,并将的坐标,并将x/W和和y/W称为齐次点称
6、为齐次点(x,y,W)的笛卡儿坐标。而的笛卡儿坐标。而W=0的点被称为无穷远点的点被称为无穷远点,在这里我们不讨论此类点,在这里我们不讨论此类点。平移变换平移变换2023/1/3齐次坐标几何意义齐次坐标几何意义三元组一般用来表示三维空间中三元组一般用来表示三维空间中的点,但是此处是用来表示二维的点,但是此处是用来表示二维空间的点。这两种表示之间具有空间的点。这两种表示之间具有以下联系:如果取所有代表同一以下联系:如果取所有代表同一点的三元组,即所有形式为点的三元组,即所有形式为(tx,ty,W)的三元组(其中的三元组(其中t0),),便可得到三维空间中的一条直线,便可得到三维空间中的一条直线,
7、因此,每一个齐次点就代表了三因此,每一个齐次点就代表了三维空间中的一条直线。又由于我维空间中的一条直线。又由于我们可以将一点的坐标齐次化(通们可以将一点的坐标齐次化(通过除以过除以W)而得到形式为而得到形式为(x,y,1)的的坐标,因此,齐次化的点就形成坐标,因此,齐次化的点就形成了了(x,y,W)空间中的一个平面空间中的一个平面,由等由等式式W=1定义。图中示出了这种联定义。图中示出了这种联系,注意:无穷远点没表示在该系,注意:无穷远点没表示在该平面中。平面中。XYW齐次坐标系,其中示有W=1的平面和投影到该平面上的点P(X,Y,W)平面2023/1/3二维变换的矩阵表示二维变换的矩阵表示两
8、个连续的旋转变换是可叠加的证明留作习题。平移变换平移变换旋转变换旋转变换比例变换比例变换2023/1/3特殊正交阵特殊正交阵(special orthogonal)左上角有个左上角有个22的子矩阵,我们可以将其中的每的子矩阵,我们可以将其中的每一行看作是一个行向量。这两个行向量有以下几一行看作是一个行向量。这两个行向量有以下几个特点:个特点:1)每个都是单位向量。每个都是单位向量。2)每两个向量之间相互垂直每两个向量之间相互垂直(它们的点积为零它们的点积为零)。)。3)如果将每个向量所指的方向旋转如果将每个向量所指的方向旋转R(),那么那么这些方向量便可位于正这些方向量便可位于正x轴、轴、y轴
9、方向上,轴方向上,即即:前两个特点也适用于该前两个特点也适用于该22子矩阵的两个列向量,并且列向量所对应的两个子矩阵的两个列向量,并且列向量所对应的两个方向量就是沿方向量就是沿x轴和轴和y轴正方向的向量轴正方向的向量(i,j,k)i,j,k)经矩阵经矩阵R R变换后而得到的变换后而得到的.因此,当已知旋转变换的结果时,这些特点便因此,当已知旋转变换的结果时,这些特点便为如何构造为如何构造旋转变换矩阵旋转变换矩阵提供了提供了两种有效的方法两种有效的方法。具有这些特性的矩阵称为特殊正交阵具有这些特性的矩阵称为特殊正交阵。特殊正交阵01 sin cos 02023/1/3刚体变换仿射变换刚体变换仿射
10、变换 单位正方体单位正方体 旋转旋转4545度度 在在x轴方向拉伸轴方向拉伸上图是单位正方体先旋转45度,再进行不均匀的比例变换,结果是单位立方体的仿射变换,只保留线段之间的平行关系,不保持长度和角度不变。对于形如:的变换矩阵,若其左上角的主子式是正交的,那么该矩阵变换保角保长。也就是说,一个单位的正方形经该矩阵变换后仍然是一个单位的正方形,特殊正交阵既不会变成单位边长的菱形,也不会变成非单位边长的正方形。这种变换也被称为刚体变换刚体变换,因为进行变换的物体不会有任何变形。任意顺序的旋转、平移变换都等同于这种形式的矩阵。一系列任意的旋转、平移和比例变换的结果又是如何呢?这些变换称为仿射仿射变换
11、变换,它们能够保持直线平行性,但不角和不保长。如上图所示,其中先将一个单位正方体旋转45度,然后进行不均匀的比例变换。很明显,正方体的角度和长度都发生了变化,但那些原来平行的线仍保持平行,再继续进行旋转、比例和平移变换也不会改变线的平行性,R()、S(sx,sy)和和T(dx,dy)都是仿射变换都是仿射变换。R()、T(dx,dy)也是刚体变换是刚体变换保长保角。2023/1/3对单位正方体进行简单的错切变换对单位正方体进行简单的错切变换,每一种变换情况,斜边的长度都超过了每一种变换情况,斜边的长度都超过了1。错切变换错切变换(一种仿射变换)(一种仿射变换)单位正方体 方体在x方向上错切 正方
12、体在y方向上错切二维的错切变换分为两种:沿x轴的错切变换和沿y轴的错切变换。上图示出了沿两个轴错切一个单位正方体的效果。其中a、b是比例常量。注意:SHxx y 1T=x+ay y 1 T,表示在x方向上的比例变化是y的函数。SHyx y 1T=x bx+y 1 T表示在y方向上的比例变化是x的函数。SHx沿沿x轴的错轴的错切变换矩阵切变换矩阵Shy沿沿y轴的轴的错切矩阵错切矩阵2023/1/3二维变换的复合二维变换的复合(例一)例一)现在考虑绕任意一点现在考虑绕任意一点P1旋转物体的问题。旋转物体的问题。1)将将P1点平移到原点;点平移到原点;2)旋转;旋转;3)平移还原平移还原P1点。点。
13、(x1,y1)(x1,y1)2023/1/3二维变换的复合二维变换的复合(例二)例二)关于任意关于任意点点P1比例比例变换一个变换一个物体。物体。2023/1/3二维变换的复合(小结)二维变换的复合(小结)假设我们想要使假设我们想要使图图中的房子以任意点中的房子以任意点P1为中心进行旋转、平移和缩放(比例)变换为中心进行旋转、平移和缩放(比例)变换。这时具体步骤与上述类似:先将点。这时具体步骤与上述类似:先将点P1平移到原点,待完成比例变换和旋转变换后平移到原点,待完成比例变换和旋转变换后再将房子从坐标原点平移到新的位置再将房子从坐标原点平移到新的位置P2,因此记录变换的数据结构可以是包含比例
14、因此记录变换的数据结构可以是包含比例变换因子、旋转角、平移量和变换顺序的数据结构,或者只是简单地记录复合变换变换因子、旋转角、平移量和变换顺序的数据结构,或者只是简单地记录复合变换矩阵的数据结构:矩阵的数据结构:如果如果M1和和M2分别代表一个基本的平移变换、比例变换或旋转变换,那么在什么情分别代表一个基本的平移变换、比例变换或旋转变换,那么在什么情况下有况下有M1M2=M2M1呢?或者说,何时呢?或者说,何时M1和和M2可交换呢?当然,一般来说矩阵乘可交换呢?当然,一般来说矩阵乘法是不可交换的,但是,在下面的特殊情况下,是可以进行交换的:法是不可交换的,但是,在下面的特殊情况下,是可以进行交
15、换的:M1 M2平移变换平移变换 平移变换平移变换比例变换比例变换 比例变换比例变换旋转变换旋转变换 旋转变换旋转变换 比例变换比例变换(sx=sy)旋转变换旋转变换因此,在这些情况下,我们不用关心矩阵乘法的顺序。因此,在这些情况下,我们不用关心矩阵乘法的顺序。T(x2,y2)R()S(sx,sy)T(-x1,-y1)2023/1/3习题习题写出综合变换矩阵.12003456782345678112345678123456782023/1/3窗口到视口的变换窗口到视口的变换2023/1/3窗口到视口的变换步骤窗口到视口的变换步骤将一个空间坐标系的窗口变换到视口的步骤:所期望的结果点坐标由所期望
16、的结果点坐标由P=Mwv x y 1TP 代表了视口内新点坐标代表了视口内新点坐标,x,y,1代表了窗口内点坐标代表了窗口内点坐标.视图变换:就是把用户坐标系表视图变换:就是把用户坐标系表示的点在视口坐标系表示出来示的点在视口坐标系表示出来。2023/1/3窗口的剪切和视口的关系窗口的剪切和视口的关系许多图形软件包将窗口到视口的变换和窗口中输出图元的剪切结合起来,许多图形软件包将窗口到视口的变换和窗口中输出图元的剪切结合起来,上图举例说明了窗口的剪切和视口的关系。上图举例说明了窗口的剪切和视口的关系。空间坐标系中的输出图元被窗口剪切,保留的部分在视口中显示出来空间坐标系中的输出图元被窗口剪切,
17、保留的部分在视口中显示出来。2023/1/3效率问题效率问题要计算一个向量与一个要计算一个向量与一个33的矩阵的乘积的矩阵的乘积MP,则必须则必须做九次乘法和六次加法。做九次乘法和六次加法。上面左侧公式上面左侧公式的的最后一行为固定结构,因此实际操作将变为四次乘法和四次加法:最后一行为固定结构,因此实际操作将变为四次乘法和四次加法:x=x r11+y r12+tx y=x r21+y r22+ty如果有些硬件的矩阵乘法器具有并行加法器和乘法器,那么无需考虑这一效率问如果有些硬件的矩阵乘法器具有并行加法器和乘法器,那么无需考虑这一效率问题。题。旋转方程旋转方程R R()需要进行四次乘法和两次加法
18、,当需要进行四次乘法和两次加法,当角非常小时(只有几度),角非常小时(只有几度),cos非常接近于非常接近于1 1,根据这一点可减少计算量,因此旋转变换公式,根据这一点可减少计算量,因此旋转变换公式可可近似地表示近似地表示成:成:x=x-ysin,y=xsin+y然而,该式只是然而,该式只是x和和y的近似值,每计算一次,都会产生误差积累。如果我们反的近似值,每计算一次,都会产生误差积累。如果我们反复无限次地使用该公式,会使其结果完全变成误差,使得旋转图象看起来就象随复无限次地使用该公式,会使其结果完全变成误差,使得旋转图象看起来就象随意画的线段集合。意画的线段集合。另一种更好的近似方法是在上面
19、式子另一种更好的近似方法是在上面式子的的第二个公式中用第二个公式中用x代替代替x:x=x-ysin,y=xsin+y=(x-y sin)sin+y=x sin+y(1 sin2)这种近似上一个公式这种近似上一个公式要要好。好。2023/1/3三维变换的矩阵表示三维变换的矩阵表示(坐标系坐标系)在齐次坐标系中,二维变换可以用在齐次坐标系中,二维变换可以用33的的矩阵表示,假定我们也用矩阵表示,假定我们也用齐次坐标齐次坐标来表示三维空间中的点,那么三维变换便可用来表示三维空间中的点,那么三维变换便可用44的的矩阵矩阵表示。因此,我们用表示。因此,我们用(x,y,z,W)而不是而不是(x,y,z)来
20、来表示三维空间中的一表示三维空间中的一点,其中若一个四元组是另一个四元组的非零倍数,则认为它们代点,其中若一个四元组是另一个四元组的非零倍数,则认为它们代表同一点,并且四元组表同一点,并且四元组(0,0,0,0)是不允许的。和二维空间一样,任是不允许的。和二维空间一样,任意点意点(x,y,z,W)(W0)的标准表示为的标准表示为(x/W,y/W,z/W,1),将坐标转化将坐标转化成这种形式被称为齐次化,而成这种形式被称为齐次化,而W为零的点则称为无穷远点。同样,为零的点则称为无穷远点。同样,齐次化的几何解释也存在:三维空间中的每一个点可以看作是从四齐次化的几何解释也存在:三维空间中的每一个点可
21、以看作是从四维空间的原点出发的一条线,且齐次化的点组成了四维空间中由简维空间的原点出发的一条线,且齐次化的点组成了四维空间中由简单等式单等式W=1确定的三维子空间。本课中的三维坐标系采用确定的三维子空间。本课中的三维坐标系采用右手系右手系,如右下图所示,按照习惯定义,右手系下的正向旋转的规定是:当如右下图所示,按照习惯定义,右手系下的正向旋转的规定是:当从一个正向轴向原点望去时,则另一个正向轴逆时针旋转从一个正向轴向原点望去时,则另一个正向轴逆时针旋转9090度后与度后与第三个正向轴重合,如下表所示第三个正向轴重合,如下表所示 旋转轴旋转轴 正向旋转的方向正向旋转的方向 x y z y z x
22、 z x y应注意,并不是所有的图形学教科书都沿袭这一约定。应注意,并不是所有的图形学教科书都沿袭这一约定。在三维图形学中采用屏幕上的左手系会很方便在三维图形学中采用屏幕上的左手系会很方便(如右上如右上图图所示所示),因因为在左手系下,可以很自然地解释为在左手系下,可以很自然地解释z值越大,点离观察者越远的情值越大,点离观察者越远的情况,但这里我们仍然使用右手系,因为它符合标准的数学约定。请况,但这里我们仍然使用右手系,因为它符合标准的数学约定。请注意,当从左手系的正向轴向原点望去时,正向旋转是顺时针的注意,当从左手系的正向轴向原点望去时,正向旋转是顺时针的(x xy y)。正向旋转的定义使本
23、节中的旋转矩阵既可以用于右手坐标正向旋转的定义使本节中的旋转矩阵既可以用于右手坐标系也可以用于左手坐标系。系也可以用于左手坐标系。显示屏上的左手左手坐标系。右手右手坐标系2023/1/3三维变换的矩阵表示三维变换的矩阵表示(公式)(公式).1000100010001),(zyxzyxddddddT平移.1000000000000),(zyxzyxssssssS比例.1000010000cossin00sincos)(zR绕z旋转.10000cossin00sincos00001)(xR绕x旋转1000333231232221131211zyxtrrrtrrrtrrrM综合.10000cos0s
24、in00100sin0cos)(yR绕y旋转,00001100010001),(yxyxxyshshshshSH01在xy方向上错切2023/1/3三维变换的矩阵表示三维变换的矩阵表示(平面方程)(平面方程)单个点的变换已经讨论。线段的变换可以通过对两端点进行变换来实现。单个点的变换已经讨论。线段的变换可以通过对两端点进行变换来实现。如果平面是由三如果平面是由三点定义的,可用同样的方法处理。如果平面由一个平面方程来定义,也需要对平面方程的点定义的,可用同样的方法处理。如果平面由一个平面方程来定义,也需要对平面方程的各个系数进行变换。各个系数进行变换。为了处理这种情况,平面方程系数的列向量为了处
25、理这种情况,平面方程系数的列向量N=A B C D T,点坐标点坐标 P=x y z 1 T,则有则有:N P=0,其中其中“”表示表示向量的点积向量的点积。点积结果得到平面方程点积结果得到平面方程 Ax+By+Cz+D=0,即行向量即行向量N T和列向量和列向量P相乘:相乘:N TP=0假设平面上的点假设平面上的点P通过某一矩阵通过某一矩阵M进行变换,即进行变换,即MP。若使变换后的点仍满足若使变换后的点仍满足N TP=0,N必须通过某一矩阵必须通过某一矩阵Q(待定)进行变换,于是便可得到待定)进行变换,于是便可得到(QN)TMP=0。由于由于(QN)T=N TQ T,则则N TQ TMP=
26、0。只有当只有当Q TM是单位矩阵的倍数时等式才成立。如果该倍数为是单位矩阵的倍数时等式才成立。如果该倍数为1,则有,则有Q T=M-1或或Q=(M-1)T。通过通过M变换后得到的平面的系数列向量为:变换后得到的平面的系数列向量为:N=Q N=(M-1)TN (5-48)矩阵矩阵(M-1)T并不一定存在,因为并不一定存在,因为M的行列式可能为的行列式可能为0。例如,当。例如,当M包含一个投影变换时(我包含一个投影变换时(我们可能想考查一下在平面上的透视投影的效果),就有可能发生这种情况。此时利用克莱们可能想考查一下在平面上的透视投影的效果),就有可能发生这种情况。此时利用克莱姆(姆(Crame
27、r)法则,采用求法则,采用求M的逆用到的辅助矩阵来代替的逆用到的辅助矩阵来代替(M-1)T。如果只想对平面的法线进行变换,并且如果只想对平面的法线进行变换,并且M只是平移变换、旋转变换和比例变换矩阵的复只是平移变换、旋转变换和比例变换矩阵的复合,则计算会更加简单。这时等式(合,则计算会更加简单。这时等式(5-48)可以简化为)可以简化为A B C 0T(W为为0的点代表一个无的点代表一个无穷远点,可以视为一个方向)。穷远点,可以视为一个方向)。2023/1/3三维变换的复合三维变换的复合本节,我们将结合一个具体的例子来详细讨论如何复合三维变换矩阵本节,我们将结合一个具体的例子来详细讨论如何复合
28、三维变换矩阵。如如上图所示上图所示,我们要将其中的有向线段我们要将其中的有向线段P1P2和和P1P3从(从(a)中的初始位置变换到(中的初始位置变换到(b)中的最终位置,于是,点中的最终位置,于是,点P1被移到坐标原点,被移到坐标原点,P1P2与与z轴重合,轴重合,P1P3落在落在y值为值为正的(正的(y,z)平面内,但线段的长度在变换中没有发生改变平面内,但线段的长度在变换中没有发生改变。实现该变换的方法有两种:实现该变换的方法有两种:第一种方法第一种方法是按部就班地构造一系列变换是按部就班地构造一系列变换T,Rx,Ry和和Rz,这种方法虽然有些冗长乏味,但很容易理解。这种方法虽然有些冗长乏
29、味,但很容易理解。第二种方法第二种方法是运用上节介绍是运用上节介绍的正交矩阵,此方法十分简要,但是变换过程也更加抽象的正交矩阵,此方法十分简要,但是变换过程也更加抽象。(a)初始位置 (b)最终位置 将P1、P2和P3 从初始位置(a)变换到最终位置(b)2023/1/3 利用前述的原始变换,便可将整个复杂的问题分割成几个相对比较简单的小问题。具体来说,整个变换可以分为4个步骤:将P1点平移到坐标原点;绕y轴旋转使得P1P2落在(y,z)平面上;绕x轴旋转使得P1P2与z轴重合;绕z轴旋转使得P1P3落在(y,z)平面上;原始变换原始变换方法方法(综述综述)2023/1/3 绕y轴旋转:长度为
30、D1的P1P2 的投影旋转到与z轴重合,角表示围绕y轴正向旋转的方向,旋转的角度是(90)。第一步:将第一步:将P1平移到坐标原点平移到坐标原点平移变换矩阵平移变换矩阵.1000100010001),(111111zyxzyxT(a)初始位置初始位置将将T应用到点应用到点P1、P2和和P3便可便可得到:得到:,1000),(11111PzyxTP,1),(12121221112zzyyxxPzyxTP,1),(13131331113zzyyxxPzyxTP2023/1/3变换图示变换图示第二步第一步2023/1/3第二步:绕第二步:绕y轴轴 旋旋 转转 绕y轴旋转:长度为D1的P1P2 的投影
31、旋转到与z轴重合,角表示围绕y轴正向旋转的方向,旋转的角度是(90)。右图右图示出了线段示出了线段 P1P2 在第一步完成后的位在第一步完成后的位置,并且可看到它在置,并且可看到它在(x,z)平面上的投影。平面上的投影。本步旋转的角度是本步旋转的角度是(90(90)=90)=90,这时有:这时有:P2 的的x坐标是零,坐标是零,z坐标是坐标是D1.10)90(11222TyDyyPRP 21221222221)()()()(xxzzxzD,cos)90sin(,sin)90cos(1121211212DxxDxDzzDz绕x轴旋转:P1P2旋转正向角后与z轴重合其中D2是线段的长度,线段P1P
32、3没有在图上画出,因为它不能决定旋转的角度。这两条线段都用Rx()变换来旋转。.10000cos0sin00100sin0cos)(yR绕y旋转2023/1/3第二步:绕第二步:绕y轴轴 旋旋 转转结果结果绕x轴旋转:P1P2旋转正向角后与z轴重合,其中D2是线段的长度,线段P1P3没有在图上画出,因为它不能决定旋转的角度。这两条线段都用Rx()变换来旋转。2023/1/3第三步:第三步:绕绕x轴旋转轴旋转右右图是线段图是线段P1P2在第二步完成后的位置在第二步完成后的位置.绕绕z轴旋转:长轴旋转:长度为度为D3 的的P1P3的投影旋转的投影旋转角角后与后与y轴重合,轴重合,从而使得从而使得P
33、1P3落在(落在(y,z)平平面上面上。而且而且P1P 2的长度为的长度为D2=|P 1P 2|,但由于旋但由于旋转变换和平移变换保持长度不变,所以转变换和平移变换保持长度不变,所以P1P2与与P1P2的长度是相等的,即有:的长度是相等的,即有:第三步旋转变换的结果是第三步旋转变换的结果是:从该式可以看出,现在从该式可以看出,现在P1P2已和已和Z轴重合。轴重合。绕绕x轴旋转:轴旋转:P1P2旋转旋转正向角正向角后与后与z轴重合,轴重合,其中其中D2是线段的长度,线是线段的长度,线段段P1P3没有在图上画出,没有在图上画出,因为它不能决定旋转的角因为它不能决定旋转的角度。这 两 条 线 段 都
34、 用度。这 两 条 线 段 都 用Rx()变换来旋转。变换来旋转。2222sin,cosDyDz .)()()(21221221221212zzyyxxPPPPD .100)90()()90()()(212222TyxyxxPPPTRRPRRPRP .10000cossin00sincos00001)(xR)43.5(绕绕x旋转旋转2023/1/3第四步:绕第四步:绕Z轴旋转轴旋转右下角的右下角的图示出了线段图示出了线段P1P2和和P1P3在第三步结束后的在第三步结束后的位置,其中位置,其中P 2与与z轴重合,而轴重合,而P 3位于:位于:本步旋转的角度为本步旋转的角度为正向角正向角,且满足且
35、满足:.)(,/sin,/cos232333333yxDDxDy .),()90()(131113333PzyxTRRzyxPyxT 其中其中=Rz()Rx()Ry(90 90)。)。整个变换过程为整个变换过程为:TRzyxTRRRyxz),()90()()(111.1000010000cossin00sincos)(zR绕绕z旋转旋转2023/1/3第二种方法第二种方法:利用正交矩阵的性质利用正交矩阵的性质利用正交矩阵的性质利用正交矩阵的性质,R 的的每个单位行向量经每个单位行向量经R旋转变旋转变换换后便成后便成为各个坐标轴(即为各个坐标轴(即x,y,z轴)轴)。.321321321zzzy
36、yyxxxrrrrrrrrrR令:令:Rx、Ry、Rz分别为分别为R的第的第一、二、三行的行向量。一、二、三行的行向量。因为因为 Rz是沿是沿P1 P2的单位向量的单位向量,并且将旋转到正向,并且将旋转到正向z轴,所轴,所以有:以有:另外,单位向量另外,单位向量Rx与点与点P1、P2和和P3所确定的平面垂直,所确定的平面垂直,并且将旋转到正向并且将旋转到正向x轴,所轴,所以,以,Rx一定是该平面内两个一定是该平面内两个向量的单位叉积向量的单位叉积:最后,很容易得到最后,很容易得到Ry:xzTyyyyRRrrrR321它将旋转到正向它将旋转到正向y轴的轴的位置。于是,整个复合位置。于是,整个复合
37、矩阵为矩阵为:,),(1000000111321321321TRzyxTrrrrrrrrrzzzyyyxxx右右图示出了单个的向量图示出了单个的向量Rx、Ry和和Rz。单位向量单位向量Rx、Ry和和Rz 将被旋转到将被旋转到与各个坐标轴重合与各个坐标轴重合。性质2023/1/3正交矩阵的性质正交矩阵的性质行向量性质行向量性质列向量性质列向量性质旋转矩阵旋转矩阵01-sincos2023/1/3将将P1、P2和和P3 从初始位置(从初始位置(a a)变换到最终位置变换到最终位置(b b)示意图示意图(b)最终位置最终位置(a)初始位置初始位置2023/1/3飞机的例子飞机的例子(xp,yp,zp
38、)坐标系中坐标系中的一架飞机的一架飞机。上图上图中的飞机平移到中的飞机平移到P点,并且点,并且机头转向机头转向DOF所指方向。所指方向。zp=DOF xp=yDOFyp=zpxp =DOF(yDOF)右上右上图显示的是一架定义在坐标系图显示的是一架定义在坐标系xp,yp,zp中的飞机,其中飞机的中心位于中的飞机,其中飞机的中心位于原点。我们变换的目的是想将这个飞机的头部转到矢量原点。我们变换的目的是想将这个飞机的头部转到矢量DOF(飞行方向)所飞行方向)所指的方向,其中心位于指的方向,其中心位于P点而且点而且机身不侧倾机身不侧倾,如如右下图所示右下图所示。该变换需要先把。该变换需要先把飞机的头
39、部转向规定的方向,然后将飞机从原点平移到飞机的头部转向规定的方向,然后将飞机从原点平移到P点。为了得到旋转矩点。为了得到旋转矩阵,我们只需先确定阵,我们只需先确定xp,yp,zp轴在轴在右下图右下图中的指向,然后取各方向矢量的单中的指向,然后取各方向矢量的单位向量,并把它们作为旋转矩阵的列向量即可位向量,并把它们作为旋转矩阵的列向量即可。由于起初飞机的头部指向由于起初飞机的头部指向zp轴的正向,所以轴的正向,所以zp轴必须变换到轴必须变换到DOF所指的方向所指的方向,而且而且xp轴必须变换成垂直与轴必须变换成垂直与DOF方向的水方向的水平向量平向量即即y轴与轴与DOF的叉积:的叉积:yDOF。
40、xp,zp确定后确定后,yp也就随之确定也就随之确定了,即为了,即为zp和和xp的叉积:的叉积:zpxp=DOF(yDOF)。)。因此,旋转矩阵的三个列因此,旋转矩阵的三个列向量分别为单位向量向量分别为单位向量|y DOF|、|DOF(yDOF)|和和|DOF|:但是当但是当DOF与与y轴方向相同时,叉积轴方向相同时,叉积y DOF和和DOF(yDOF)均变成均变成0,在这,在这种特殊情况下,种特殊情况下,R不再是一个旋转矩阵。不再是一个旋转矩阵。100000)(0DOFDOFyDOFDOFyR)67.5(2023/1/3坐标系的变换坐标系的变换到目前为止,我们只讨论了如何在同一坐标系到目前为
41、止,我们只讨论了如何在同一坐标系中将一个物体的一组点变换成另一组点,因此中将一个物体的一组点变换成另一组点,因此前面的各种变换归根结底都是关于原点所做的前面的各种变换归根结底都是关于原点所做的变换,坐标系均不变动。下面我们将介绍另一变换,坐标系均不变动。下面我们将介绍另一种变换的思路,即通过改变坐标系来实现物体种变换的思路,即通过改变坐标系来实现物体的变换。当将定义在各自不同的坐标系中的多的变换。当将定义在各自不同的坐标系中的多个物体合并在一起个物体合并在一起,并放在一个通用的坐标系中并放在一个通用的坐标系中时,这种方法便显示出它的优越性。时,这种方法便显示出它的优越性。左手坐标系和右手坐标系
42、互换左手坐标系和右手坐标系互换:.1000010000100001RLLRMM2023/1/3点点P和坐标系和坐标系1,2,3,4。2023/1/3房子上的点可以用任何一个坐标系的坐标来表示。坐标系的变换房子表示坐标系的变换房子表示2023/1/3坐标系的变换坐标系的变换(房子房子变迁变迁)原始的房子(原始的房子(a)初始位置及所在的坐标系(初始位置及所在的坐标系(b)变换后所在的变换后所在的坐标系与原坐标系之间的关系坐标系与原坐标系之间的关系2023/1/3三轮车与三个坐标系三轮车与三个坐标系(空间坐标系)2023/1/3习题答案习题答案p1=(1,2)p1=(1,2)p2=(4,2)p2=(2,2)p3=(4,3)p3=(2,5)p4=(1,3)p4=(1,5)T1=1 0 -10 1 -20 0 1S=1/3 0 00 3 00 0 1T2=1 0 10 1 20 0 1M=T2 S T1 综合矩阵综合矩阵=1 0 -10 1 -20 0 1 1/3 0 0 0 3 0 0 0 11 0 10 1 20 0 11/3 0 2/30 3 -40 0 1=T2 S T1 121121121=M=T2 S T1 221421421=M=T2 S T1 251431431=M=T2 S T1 151131131=M2023/1/32023/1/3