`
wgcode
  • 浏览: 574740 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

转换矩阵 Matrix详解

阅读更多

做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

其实都是些向量运算,向量加减,点积,叉积,可以在坐标系中画一画向量的变化比较直观。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics