Files
AndroidNote/CustomView/Advance/[9]Matrix_Basic.md
2016-07-17 23:54:02 +08:00

2.3 KiB
Raw Blame History

Matrix基础

前面讲了四篇 Path 相关的内容,本次终于要到了大家期盼已久的黑客帝国!

如题,本篇的主角是 Matrix(并不是黑客帝国)。

它在我们在之前的很多文章中都提及过但并没有仔细的介绍过从本篇开始终于要正式介绍它了这个在2D绘图中十分重要的角色 -- Matrix。

Matrix 的翻译过来是矩阵模型。和其释义相同Matrix是一个矩阵其作用则是一个模型一个控制视图状态的模型。

也就是说, 我们进行界面视图等转换都是需要依靠 Matrix 的帮助的,例如我们之前在 Canvas之画布操作 中讲解过的画布操作,这些操作的核心就是改变 Matrix 的数值。

Matrix方法表

Matrix 有很多常用和不常用的方法,在本篇中重点不在于这些方法的讲解,而是帮助大家理解 Matrix 的一些基本概念。

方法类别 相关API 摘要
基本方法 equals hashCode toString toShortString 比较、 获取哈希值、 转换为字符串
数值操作 set reset setValues getValues 设置、 重置、 设置数值、 获取数值
设置(set) setConcat setRotate setScale setSkew setTranslate 设置变换
前乘(pre) preConcat preRotate preScale preSkew preTranslate 前乘变换
后乘(post) postConcat postRotate postScale postSkew postTranslate 后乘变换
数值计算 mapPoints mapRadius mapRect mapVectors 计算变换后的数值
特殊方法 setPolyToPoly setRectToRect rectStaysRect setSinCos 一些特殊操作
矩阵相关 invert isAffine isIdentity 求逆矩阵、 是否为仿射矩阵、 是否为单位矩阵 ...

Matrix原理

Matrix 本质是一个 3x3 的矩阵里面有9个数值分别用于控制视图状态的不同内容我们对视图的操作最终都是改变Matrix里面的数值。