返回“Flash基础理论课 - 目录”
本章我们不去介绍一些新的运动、物理学或渲染图形的方法。我要给大家介绍的是矩阵(Matrix),它给我们提供了一个新的可选方案。
矩阵在3D 系统中 3D点的旋转,缩放以及平移(运动)中使用得非常频繁。在各种 2D 图形的变换上也很常用。您也许可以回想到 beginGradientFill 方法就是使用矩阵来设置位置,大小以及旋转比例的。
本章大家将看到如何创建一个3D矩阵系统,用以操作 3D的影片并且可以看到一些 Flash中内置的矩阵。我很庆幸现在为止还没有一处提到 Keanu Reeves [译注:基努-里维斯,尤指电影《黑客帝国》-- The Matrix]的电影。看看我还能坚持多久。
矩阵基础
矩阵最简单的定义是一个数字表格。它可以有一个或多个水平的行和一个或多个垂直的列。图 18-1 展示了一些矩阵。
图18-1 一个3×3矩阵,一个1×3矩阵,一个3×1矩阵
矩阵通常都是由一些变量来描述的,如 M。在矩阵中为表示一个特殊的单元,我们使用的变量里面通常要用行列的值作为脚标。例如,如果图 18-1中的3×3矩阵叫做 M,那么 M2,3 就等于 6,因为它指向第二行,第三列。
一个矩阵的单元不仅可以包含简单的数字,也可以是公式和变量。其实电子表格就是一个大的矩阵。我们可以用一个单元保存某一列的和,用另一个单元格将这个总和乘以一个分数,等等。我们看到这样的矩阵应该非常有用。
矩阵运算
一个电子表格就像一个自由组合的矩阵,我们要处理的矩阵更加有结构,至于能用它们做什么以及如何生成都有各自的规则。
我所见过的大多数矩阵数学的教材都只介绍两种方法的一种。首先学校讲的是矩阵运算的细节,使用的整个矩阵的几乎都是一些随机的数字。我们学习这些规则,但是不知道为什么要做这些事情或所得的结果代表什么。就像在玩把数字排列成漂亮形状的游戏。
第二个方法是详细地描述矩阵的内容但是略过手工操作,如“将两个矩阵相乘得到这个结果… …”让读者不知道乘法到底是怎么算的。
为了保证大家都能了解矩阵是如何工作的,我选择一个两者兼具的方法(折衷),从介绍一些数值矩阵开始,然后描述如何做矩阵乘法。