依据能否便捷的被数学函数公式精确描述,空间变换可以分为两大类:简单变换和复杂变换。位移,反射,旋转,斜切等变换都可以通过简单的函数来描述属于简单变换;在Photoshop中对一幅图像应用涂抹工具,是复杂的变换,需要根据具体情况具体处理。
简单空间变换是计算机图形学的重要研究内容,其运算是依靠矩阵来描述的。使用脚本控制动画形变,主要是进行简单空间变换。AS3中的Matrix类提供了处理简单空间变换的能力,其本质就是矩阵操作。
假设舞台平面内存在一个点S(x,y),可以将其看成一个一行两列的矩阵A[x,y],如果企图使之水平方向放大两倍,则目标点T的坐标为(2x,y),依然可以看成一个矩阵C[2x,y]。假设有一个矩阵B,满足A×B=C,那么矩阵B就是一个变换矩阵,其功能为令对象水平拉伸2倍。数学已经证明B是存在的,而且可以断言,矩阵B是一个2×2的矩阵。假设矩阵B内的元素为[(a,b),(c,d)],如图所示:
根据矩阵乘法,可以写出以下方程组:
x×a+y×c=2x
x×b+y×d=y
为使这个方程组成立,只需要令a=2,b=0,c=0,d=1即可。于是得到了矩阵B中元素的具体数值,可以明确写出矩阵B(如图所示):
显然,对于任意点进行水平放大两倍的变形,都可以应用矩阵B实现。而通过修改矩阵B的值,实现对任意点垂直放缩也不困难。这就体现了矩阵变形操作灵活直观的优势。