为绕坐标原点旋转的变换矩阵

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第2章计算机图形处理技术232.2图形变换在计算机图形处理中,经常需要对已经生成的图形进行几何变换处理。例如,改变图形的大小、移动图形或根据需要将图形旋转一个角度,输出零件的三面视图,显示立体图,或要求一物体绕一轴线作连续的动态转动,使观察者能看到物体的各个侧面。这就要求图形的处理软件能够实现旋转、平移、缩放等几何变换。我们知道,点是构成一个几何形体的最基本的元素。一幅二维图形可以看成是一个点集。那么,我们就可以把对图形的几何变换归结对点的变换。42.2.1图形变换方法一、点的向量表示在二维空间中点的表示方法,我们通常是用它的坐标来表示,写作P(x,y)。为了以后变换的方便,我们可以把它写作矩阵的形式,即用一行两列的矩阵或一个两行一列的矩阵表示。在三维空间里则用表示空间一点。那么,对于一个二维空间的图形或三维空间的立体,可以用一个点的集合(简称点集)来表示,每个点对应一个行向量,则点集为n×2或m×3阶的矩阵:yxyxzyx22211nnnyxyxyx3mmmm222111zyxzyxzyx或5例如:已知三角形ABC顶点的坐标分别为A(x1,y1),B(x2,y2),C(x3,y3)则三角形ABC可以记作矩阵:然后把它以数组的形式存贮在计算机内。332211yxyxyx6二、齐次坐标齐次坐标是将一个n维空间的点用n十1维,即附加一个坐标来表示。如二维点[xy]的齐次坐标通常用三维坐标[HxHyH]表示,三维点[xyz]的齐次坐标通常用四维坐标[HxHyHzH]表示,……。在齐次坐标系中,最后一维坐标H称为比例因子。由于比例因子H的取值是任意的,所以任一点可用许多组齐次坐标表示,如二维点[32]可表示为[321]、[642]、[963]等。另外,可用H=0的向量表示无穷远的点。例如用[1000]、[0100]、[0010]分别表示x,y,z轴上的无穷远点。对齐次坐标进行坐标变换称为齐次变换,相应的变换矩阵称为齐次变换矩阵7反过来,还可以通过矩阵变换将无穷远点变换为与之对应的有限远点。当H=1时,则称为规范齐次坐标。从齐次坐标返回到n维空间去时,只需将坐标中每个分量除以H就可以了。以后介绍的变换矩阵实际上都是奇次坐标变换。用齐次坐标方式进行变换运算不但可以产生正常坐标变换的同样效果,而且可以简化正常坐标变换过程。在图形变换中引入齐次坐标表示,还能使各种基本变换,如旋转、平移和比例交换等具有统一的变换矩阵格式,并且可以将它们结合在一起进行组合变换,同时也便于计算。8三、变换矩阵由于图形可以用点集表示,因此要对图形进行变换,只要变换点就可以了。对点的变换可以通过相应的矩阵运算来实现,即:旧点(集)×变换矩阵新点(集)若将二维空间的点由某个位置P(x,y)变换到一个新的位置P*(x*,y*),变换的原理是把齐次坐标点(x,y,1)通过变换矩阵变换成新的齐次坐标点(x*,y*,1)。即:矩阵运算11**yxyx9T为基本变换矩阵:从变换功能上可把T分为四个子矩阵,其中对图形进行比例、旋转、对称、错切等变换;[lm]对图形进行平移变换;[pq]T对图形进行投影变换,不做投影变换时取p=0,q=0;[s]对图形进行全比例变换。通常取s=1。dcba+P(x,y)+P*(x*,y*)10三维图形的变换矩阵是二维图形变换矩阵的简单扩展,在三维空间中,用四维齐次坐标表示三维点,即[xyz1]。三维变换矩阵则采用4×4阶矩阵表示,即:srqpnjfcmieblhda11齐次变换矩阵:平移缩放旋转错切透视变换整体缩放srqpnjfcmieblhdajihfedcbanmlrqps122.2.2二维图形的几何变换一、基本几何变换1、平移变换2、比例变换3、旋转变换4、对称变换5、错切变换二、组合变换13图中l、m分别为x、y方向的平移量。从图中可以得出变换前后点的坐标值应满足以下关系:OyxABCABClmmyylxx一、基本几何变换1、平移变换平移变换是将图形在坐标平面内移动,只改变图形的位置,不改变图形的大小和形状。平移变换如图所示:14将它写成矩阵的形式为:那么即为所求平移变换矩阵。1yx1010001ml=1mylx=1**yx1010001ml15例1:已知三角形顶点坐标为A(0,0),B(20,0),C(0,20),平移参数分别为l=20,m=10;试对此三角形进行平移变换。解:因为平移变换矩阵为所以变换后点的坐标为162、比例变换比例变换指将原有图形在x、y两个方向上进行放大或缩小的变换,通过它可以改变图形的大小和方向。将平面上一点P(x,y)在x、y两个方向上分别进行放大a倍和d倍的比例变换后得到新点P*(x*,y*),P和P*的关系为:•写成矩阵的形式为dyyaxx1yx1000000da=1dyax=1**yx17其中,T=称为比例变换矩阵,a、d分别为沿x、y方向上的比例因子,且a、d0。a、d的取值不同,变换效果也不同,如下所述:(1)如果a=d=1,变换为恒等变换,即变换后点的坐标不变。(2)如果a=d≠1,变换为等比例变换。其中,如果a=d1,变换为等比例放大;如果a=d1,变换则为等比例缩小。如图(a)、(b)所示。(3)如果a≠d,变换后的图形会产生畸变。如图(c)所示。1000000da18(a)a=d1(b)a=d1(c)adyyyxxxoooAAABBBCCC*A*A*A*B*B*B*C*C*C19例2:a=2,d=1时,假设变换前A(1,1),B(2,1),C(1,2),那么,变换后为A*(2,1),B*(4,1),C*(2,2),△ABC与△A*B*C*不相似。203、旋转变换旋转变换一般指图形绕坐标原点旋转一个角度,规定为:绕原点逆时针方向旋转为正,顺时针方向为负。经过旋转变化后不改变图形自身的大小、形状等,只改变图形的方向。连续的旋转变换相当于将其旋转角度叠加之后的旋转变换。将平面上一点P(x,y)绕坐标原点逆时针旋转角,变换后得到新点P1(x1,y1),P和P1的关系为:224、对称变换对称变换又称为反射变换或镜像变换。(1)关于坐标原点的对称变换将平面上一点P(x,y)进行关于原点的对称变换后得到新点P*(x*,y*),P和P*的关系如图(a)应为:x*=-x,y*=-y,写成矩阵形式为:其中:为关于原点的对称变换矩阵。1yx100010001=1yx=1**yx100010001CBA*A*B*Coyx23(2)关于x轴的对称变换将平面上一点P(x,y)进行关于x轴的对称变换后得到新点P*(x*,y*),P和P*的关系如图(b)应为:x*=x,y*=-y,写成矩阵形式为:•其中:为关于•x轴的对称变换矩阵。1yx100010001=1yx=1**yx100010001yx*A*C*BACBo24(3)关于y轴的对称变换将平面上一点P(x,y)进行关于y轴的对称变换后得到新点P*(x*,y*),P和P*的关系如图(c)应为:x*=-x,y*=y,写成矩阵形式为:•其中:为变换矩阵。1yx100010001=1yx=1**yx100010001A*C*B*ABCxyo25(4)关于y=x的对称变换将平面上一点P(x,y)进行关于直线y=x的对称变换后得到新点P*(x*,y*),P和P*的关系如图(d)应为:x*=y,y*=x,写成矩阵形式为:其中:为变换矩阵。1yx100001010=1xy=1**yx100001010yoxCBAABC***26(5)关于y=-x的对称变换将平面上一点P(x,y)进行关于直线y=-x的对称变换后得到新点P*(x*,y*),P和P*的关系如图(e)应为:x*=-y,y*=-x,写成矩阵形式为:•其中:为变换矩阵。1yx100001010=1xy=1**yx100001010xyoC*B*A*ABC275、错切变换错切变换是使图形沿错切方向的坐标发生变化,而另一方向的坐标值不变,从而达到使原图形发生特定变化的目的。错切变换分沿x轴和沿y轴错切两种形式。(1)沿x轴方向的错切将平面上一点P(x,y)进行沿x轴方向的错切变换后得到新点P*(x*,y*),变换过程如图(a)所示,从图中可以看出,沿x轴方向错切变化后,y坐标不变,x将产生一个增量△x=cy,而且c当取正值时,沿x轴的正方向进行错切,反之c取负值。P和P*的关系为:x*=x+cy,y*=y。写成矩阵形式为:28其中:为变换矩阵。(a)沿x轴方向的错切(b)沿y轴方向的错切•1yx10001001c=1ycyx=1**yx10001001ccybxyyxxA(A)B(B)CDCD*****A(A)*BB*C(C)D*D29(2)沿y轴方向的错切将平面上一点P(x,y)进行沿y轴方向的错切变换后得到新点P*(x*,y*),变换过程如图(b)所示,从图中可以看出,沿y轴方向错切变化后,x坐标不变,y将产生一个增量△y=bx,而且当b取正值时,沿y轴的正方向进行错切,反之b取负值。P和P*的关系为:x*=x,y*=bx+y。写成矩阵形式为:其中:为变换矩阵。1yx10001001b=1ybxx=1**yx10001001b30二、组合变换在图形的几何变换中,图形的实际变换往往不是单独采用前述的各种基本变换就可以完成,通常需要将各种基本变换组合使用,以完成最终的图形变换。这种由多种基本变换组合而成的变换称为组合变换,相应的变换矩阵叫做组合变换矩阵。假设已知点P依次经过T1、T2和T3三个几何变换,得到的结果为:P*=((PT1)T2)T3运用矩阵乘法的结合律,上式可化为:P*=P(T1T2T3)于是得到组合变换的变换矩阵为:T=T1T2T3由于矩阵不存在交换律,因此矩阵相乘的顺序是不能随意互换的。31组合变换顺序对图形的影响复杂变换是通过基本变换的组合而成的,由于矩阵的乘法不适用于交换律,即:[A][B]≠[B][A]因此,组合的顺序一般是不能颠倒的,顺序不同,则变换的结果亦不同,如图所示。32实例:绕任意点的旋转变换平面图形绕任意点P(xp,yp)逆时针旋转角,需要通过如下几个步骤来实现:(1)将旋转中心平移到坐标原点,变换矩阵为(2)将图形绕坐标原点逆时针旋转角,变换矩阵为10100011ppyx1000cossin0sincos233(3)将旋转中心平移回到原来位置,变换矩阵为(4)最后得出绕任意点P的旋转矩阵为10100013ppyx3211010001ppyx1000cossin0sincos1010001ppyx即1cos1sinsincos10cossin0sincos)()(ppppyxyx当xp=0,yp=0时,即为对原点的旋转变换矩阵。34例3:将下图所示图形绕自身对称轴上的一点P(15,12)逆时针旋转90度,放大2倍(x、y方向的放大倍数

1 / 42
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功