做UI少不了图形处理,转换矩阵是图形学里的基础,flash中更是常用,
Matrix 类表示一个转换矩阵,它确定如何将点从一个坐标空间映射到另一个坐标空间.
先来看一个二维矩阵的几何意义:
2 1
-1 2
代表了二维坐标中的两个向量p = [2,1],q = [-1,2],为了方便理解写成如下:
x y
2 1
-1 2
可以看出矩阵第一列表示X轴,第二列表示Y轴,那么在x轴的基向量p' =[1, 0]就是第一行,在y轴上的基向量是q' =[0, 1]就是第二行,正好是一个单位矩阵:
1 0
0 1
那么由单位矩阵变到上面的二维矩阵,可以看成是:
x轴变换成向量p,y轴变换成向量q, 也就有了缩放和旋转效果,我这没有图可能不好理解,可以想象一样或在纸上画一下向量p'变到p的过程。
在Matrix类中表示成了:
a b
c d
在加上平移列就表示成了:
a b tx
c d ty
0 0 1
看看缩放的矩阵变换表示:
Sx 0 0
0 Sy 0
0 0 1
就是x轴向量p'=[1,0] 变成 p=[Sx, 0]了, x轴变大了,y轴同理,如果是显示对象就是宽高变了,所以是缩放。
倾斜的矩阵变换:
0 skewY 0
skewX 0 0
0 0 1
旋转的矩阵变换:
cos(a) sin(a) 0
-sin(a) cos(a) 0
0 0 1
在Matrix3D中原理是一样,只是加了一个z轴,3维的单位矩阵如下:
x轴 y轴 z轴
1 0 0
0 1 0
0 0 1
其实都是些向量运算,向量加减,点积,叉积,可以在坐标系中画一画向量的变化比较直观。
转换矩阵 Matrix详解
最新推荐文章于 2023-05-14 10:35:14 发布