8.7.9 位移向量运算

  通过分析flip_V_3()函数运行时在Output窗口输出的trace()信息,可以理解concat()方法和AS3矩阵运算的内部逻辑:

//第一周期

flipmatrix:(a=1 b=0 c=0 d=0.995 tx=0 ty=0)

OriginalMatrix:(a=1 b=0 c=0 d=1 tx=-50 ty=50)

Concat result matrix:(a=1 b=0 c=0 d=0.995 tx=-50 ty=49.750)

……

 

//第三周期

flipmatrix:(a=1 b=0 c=0 d=0.955 tx=0 ty=0)

OriginalMatrix:(a=1 b=0 c=0 d=1 tx=-50 ty=50)

Concat result matrix:(a=1 b=0 c=0 d=0.955 tx=-50 ty=47.766)

 

//5个周期

flipmatrix:(a=1 b=0 c=0 d=0.877 tx=0 ty=0)

OriginalMatrix:(a=1 b=0 c=0 d=1 tx=-50 ty=50)

Concat result matrix:(a=1 b=0 c=0 d=0.877 tx=-50 ty=43.879)

……

显然,显示对象的txty参与了运算,其运算原理十分有趣:在矩阵相乘时(A×B)AS3对矩阵A和矩阵Btxty的处理比较特殊,过程如图所示:

8.7.9 位移向量运算_第1张图片

在运算中既不是将两个矩阵的txty向量相加,也不是将两者相乘。而是按照仿射变形公式f(x)=Ax+b,把矩阵A中的txty看作一个向量代入公式,把矩阵B中的txty看作位移向量。因此运算就变为矩阵A中的txty同矩阵B相乘,再与矩阵B中的txty相加。

你可能感兴趣的:(8.7.9 位移向量运算)