Files
AndroidNote/CustomView/Advance/[9]Matrix_Basic.md

49 lines
2.3 KiB
Markdown
Raw Normal View History

2016-06-11 21:33:47 +08:00
# Matrix基础
2016-06-06 17:39:12 +08:00
2016-07-17 23:49:40 +08:00
前面扯了四篇 Path 相关的内容,本次终于要到了大家期盼已久的黑客帝国!
2016-06-06 17:39:12 +08:00
2016-06-26 21:16:22 +08:00
![](http://ww1.sinaimg.cn/large/005Xtdi2jw1f4oyx5i8wbj308c0bj3zz.jpg)
2016-06-10 02:41:55 +08:00
2016-07-17 23:49:40 +08:00
如题,本篇的主角是 Matrix(并不是黑客帝国)。
2016-06-10 02:41:55 +08:00
2016-07-17 23:49:40 +08:00
我们在之前的很多文章中都提及过它但并没有仔细的介绍过从本篇开始正式介绍它了这个在2D绘图中十分重要的角色Matrix。
2016-06-06 17:39:12 +08:00
2016-06-11 19:27:17 +08:00
>
2016-06-26 21:32:58 +08:00
#### Matrix 的翻译过来是矩阵模型。和其释义相同Matrix是一个矩阵其作用则是一个模型一个控制视图状态的模型。
2016-06-06 17:39:12 +08:00
2016-06-26 21:32:11 +08:00
也就是说, 我们进行界面视图等转换都是需要依靠 Matrix 的帮助的,例如我们之前在 [Canvas之画布操作](https://github.com/GcsSloop/AndroidNote/blob/master/CustomView/Advance/%5B3%5DCanvas_Convert.md) 中讲解过的画布操作,这些操作的核心就是改变 Matrix 的数值。
2016-06-11 21:46:30 +08:00
## Matrix方法表
2016-06-13 17:01:01 +08:00
Matrix 有很多常用和不常用的方法,在本篇中重点不在于这些方法的讲解,而是帮助大家理解 Matrix 的一些基本概念。
2016-06-26 20:49:05 +08:00
方法类别 | 相关API | 摘要
2016-06-26 22:16:19 +08:00
-----------|---------------------------------------------------------|------------------------
2016-06-27 21:51:32 +08:00
基本方法 | equals hashCode toString toShortString | 比较、 获取哈希值、 转换为字符串
数值操作 | set reset setValues getValues | 设置、 重置、 设置数值、 获取数值
2016-06-26 20:49:05 +08:00
设置(set) | setConcat setRotate setScale setSkew setTranslate | 设置变换
前乘(pre) | preConcat preRotate preScale preSkew preTranslate | 前乘变换
后乘(post) | postConcat postRotate postScale postSkew postTranslate | 后乘变换
2016-06-27 21:51:32 +08:00
数值计算 | mapPoints mapRadius mapRect mapVectors | 计算变换后的数值
特殊方法 | setPolyToPoly setRectToRect rectStaysRect setSinCos | 一些特殊操作
矩阵相关 | invert isAffine isIdentity | 求逆矩阵、 是否为仿射矩阵、 是否为单位矩阵 ...
2016-06-26 22:31:43 +08:00
2016-06-26 23:14:36 +08:00
## Matrix原理
2016-06-26 20:49:05 +08:00
2016-06-27 19:55:23 +08:00
2016-07-09 09:14:51 +08:00
Matrix 本质是一个 3x3 的矩阵里面有9个数值分别用于控制视图状态的不同内容我们对视图的操作最终都是改变Matrix里面的数值。
2016-06-26 20:49:05 +08:00
2016-06-13 17:01:01 +08:00
2016-06-11 21:46:30 +08:00