2.2 KiB
2.2 KiB
Matrix基础
前面扯了四篇 Path 相关的内容,本次终于要到了大家期盼已久的 Matrix(传说中的黑客帝国!!!):
如题,本篇的主角是 Matrix(其实并不是黑客帝国来着)。
仔细会想一下,我们在很多地方都见过 Matrix(画布操作,drawBitmap,path 等), 感觉它就像是一个烦人家伙,什么事情都想插上一脚。 然而实际情况却并非如此, Matrix 一直都在我们看不到的地方默默付出着, 如果没有了 Matrix, 我们之前的很多方法都是无法运行的。
这么说来 Matrix 也算个厉害人物,那么这个 Matrix 到底是何方神圣呢?
Matrix 的翻译过来是矩阵,模型。和其释义相同,Matrix是一个矩阵,其作用则是一个模型,一个控制视图状态的模型。
我们之前在 Canvas之画布操作 中讲解过不少画布相关操作,这些操作的核心就是改变 Matrix 的数值。
Matrix方法表
Matrix 有很多常用和不常用的方法,在本篇中重点不在于这些方法的讲解,而是帮助大家理解 Matrix 的一些基本概念。
| 方法类别 | 相关API | 摘要 |
|---|---|---|
| 比较方法 | equals hashCode | 比较、 获取哈希值 |
| 基本方法 | set reset setValues getValues | 设置、 重置、 设置数值、 获取数值 |
| 矩阵相关 | invert isAffine isIdentity | 计算逆矩阵、 是否是仿射矩阵、 是否是单位矩阵 |
| 数值计算 | mapPoints mapRect mapVectors | 计算 点、 矩形、 阵列 经过变换后点位置 |
| 设置(set) | setConcat setRotate setScale setSkew setTranslate | 设置变换 |
| 前乘(pre) | preConcat preRotate preScale preSkew preTranslate | 前乘变换 |
| 后乘(post) | postConcat postRotate postScale postSkew postTranslate | 后乘变换 |
