Merge
* Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update
This commit is contained in:
@@ -1,42 +1,34 @@
|
||||
# Matrix基础
|
||||
|
||||
前面扯了四篇 Path 相关的内容,本次终于要到了大家期盼已久的 Matrix,没错,就是传说中的黑客帝国:
|
||||
前面扯了四篇 Path 相关的内容,本次终于要到了大家期盼已久的 Matrix(传说中的黑客帝国!!!):
|
||||
|
||||

|
||||
|
||||
勇敢的骚年啊,你是选择红药丸还是选择蓝药丸呢?
|
||||
如题,本篇的主角是 Matrix(其实并不是黑客帝国来着)。
|
||||
|
||||
仔细回想一下,我们在很多地方都见过 Matrix(画布操作,drawBitmap,path 等), 感觉它就像是一个烦人家伙,什么事情都想插上一脚。 然而实际情况却并非如此, Matrix 一直都在我们看不到的地方默默付出着, 如果没有了 Matrix, 我们之前的很多方法都是无法运行的。
|
||||
|
||||
这么说来 Matrix 也算个厉害人物,那么这个 Matrix 到底是何方神圣呢?
|
||||
|
||||
>
|
||||
我选蓝色的,不要问我为什么。
|
||||
#### Matrix 的翻译过来是矩阵,模型。和其释义相同,Matrix是一个矩阵,其作用则是一个模型,一个控制视图状态的模型。
|
||||
|
||||

|
||||
|
||||
好了,言止于此,不能说更多了,下面开始我们本篇的正题。
|
||||
|
||||
## 前言
|
||||
|
||||
如题,本篇的主角是 Matrix,在 Canvas 中很多地方都有 Matrix 的身影,如: 画布操作,drawBitmap,path 等。几乎无处不在,那么 Matrix 到底是干什么的呢?
|
||||
|
||||
>
|
||||
**Matrix 的翻译过来是矩阵,模型。和其释义相同,Matrix是一个矩阵,其作用则是一个模型,一个控制视图状态的模型。**
|
||||
|
||||
我们之前在 [Canvas之画布操作](https://github.com/GcsSloop/AndroidNote/blob/master/CustomView/Advance/%5B3%5DCanvas_Convert.md) 中讲解过不少画布相关操作,这些操作的核心就是是操作 Matrix
|
||||
也就是说, 我们进行界面视图等转换都是需要依靠 Matrix 的帮助的,例如我们之前在 [Canvas之画布操作](https://github.com/GcsSloop/AndroidNote/blob/master/CustomView/Advance/%5B3%5DCanvas_Convert.md) 中讲解过的画布操作,这些操作的核心就是改变 Matrix 的数值。
|
||||
|
||||
## Matrix方法表
|
||||
|
||||
Matrix 有很多常用和不常用的方法,在本篇中重点不在于这些方法的讲解,而是帮助大家理解 Matrix 的一些基本概念。
|
||||
|
||||
方法类别 | 相关API | 摘要
|
||||
---|---|---
|
||||
比较 | equals | 比较两个矩阵是否相同
|
||||
获取数值 | getValues | 获取矩阵的数值
|
||||
获取哈希值 | hashCode | 获取矩阵的哈希值
|
||||
获取逆矩阵 | invert | 如果矩阵可逆,获取其逆矩阵
|
||||
是否是仿射矩阵 | isAffine |判断是否是仿射矩阵
|
||||
是否是单位矩阵 | isIdentity | 判断是否是单位矩阵
|
||||
获取变换后位置 | mapPoints | 计算一个点在变换后点的位置
|
||||
获取变换后位置 | mapRect | 计算一个矩形变换后点位置
|
||||
获取变换后位置 | mapVectors | 计算一个向量阵列变换后点位置
|
||||
方法类别 | 相关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 | 后乘变换
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user