8.6.4 旋转变换矩阵
利用矩阵能完成旋转。对于图8-31中的点S ( j,0),可以看做矩阵A[ j,0],令点S旋转a度得到点T(m,n),可以看做矩阵C [m,n],显然可以存在变换矩阵B,令A×B=C成立。由简单的几何知识就能得出变换矩阵B的构造。
[TR]
[TD][I]498)this.width=498;' onmousewheel = 'javascript:return big(this)' height=267 alt="" src="http://pic.aIhUaU.com/201602/15/215416992.jpg" width=288 border=0>[/TD][/TR]
[TR]
[TD]图8-31 旋转矩阵[/TD][/TR]
因为点S位于坐标轴上,使得计算矩阵B的过程极大的简化了。如果要对于位置不在坐标轴上的点进行旋转,其数学计算要复杂一些,其推导已经超出了本书的内容范围。不过最终确实可以证明,对于坐标空间中的任意点(x,y)经过旋转s度得到的点(m,n),存在以下公式。
[TR]
[TD]m=a×cos(s)-b×sin(s)
n=a×sin(s)+b×cos(s)
[/TD][/TR]
于是可以得到通用的旋转变换矩阵如图8-32所示。
显然,这个通用矩阵对于坐标轴上的点也是适用的。
在AS3中使用变换矩阵操作显示对象时,总是套用显示对象上一级容器的坐标系。如果显示对象直接处在舞台根级别上,则坐标系原点就是舞台的左上角。
[TR]
[TD][I]498)this.width=498;' onmousewheel = 'javascript:return big(this)' height=597 alt="" src="http://pic.aIhUaU.com/201602/15/215753746.jpg" width=634 border=0>[/TD][/TR]
[TR]
[TD]图8-32 通用旋转变换矩阵[/TD][/TR]