http://blog.youkuaiyun.com/as3_flash/article/details/2378462
依據能否便捷的被數學函數公式精確描述,空間變換可以分為兩大類:簡單變換和複雜變換。位移,反射,旋轉,斜切等變換都可以通過簡單的函數來描述屬於簡單變換;在 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的值,實現對任意點垂直放縮也不困難。這就體現了矩陣變形操作靈活直觀的優勢。