This commit is contained in:
sloop
2016-07-23 01:11:09 +08:00
committed by GitHub
parent 5a87381bfc
commit 3ee920843e

View File

@@ -88,28 +88,12 @@ $$)
> **的确更改MPERSP_2的值能够达到类似缩放的效果但这是因为齐次坐标的缘故并非这个参数的实际功能。** > **的确更改MPERSP_2的值能够达到类似缩放的效果但这是因为齐次坐标的缘故并非这个参数的实际功能。**
## 三、Matrix优缺点 ## 三、Matrix详解
Matrix在view、canvas、path、bitmap等很多地方都有应用可以说运用十分广泛优点突出但也存在一定但缺点下面简要介绍一下Matrix相关优缺点 Matrix 是一个矩阵,肯定会涉及到一些比较麻烦的理论知识,我会尽量用通俗易懂的方式来帮助大家理解它
### 优点
* 计算方便,利用矩阵的计算法则可以方便的将一个坐标系转换为另一个坐标系中。
* 存储量小Matrix仅有九个数值却包含了大部分画布的状态信息。
* 方便复用如果有重复的需要相同状态的地方只需要构造好一个Matrix设置给不同的画布即可保证每一个画布的状态都是相同的无需给每一个画布都重新构造状态。另外如果一张图片需要以不同的状态展示可以只放一张资源图片然后构造出不同的Matrix进行设置即可。
### 缺点
* 稍有门槛Matrix计算运用了线性代数的知识有一定的门槛虽然封装了比较好的方法但对于大部分人来说pre、post、set有啥区别还是傻傻分不清楚更不用说仿射投影齐次坐标这些让人头大的概念。
* 容易混淆Matrix的方法变换 和 Canvas的方法变换 稍微有所差别, 如果按照Canvas的变换方法直接构造Matrix最后的结果可能会与你想象的有所差别。
### 四大常用操作
Matrix 是一个矩阵,肯定会涉及到一些比较麻烦的理论知识,不过我会尽量用通俗易懂的方式来帮助大家理解它。
## 四大常用操作
我们之前在 [Canvas之画布操作](https://github.com/GcsSloop/AndroidNote/blob/master/CustomView/Advance/%5B3%5DCanvas_Convert.md) 中讲解过的四种画布操作(translate, scale, rotate, skew)这些操作的核心就是改变Matrix的数值接下来我们看看这四种操作都会影响到哪些数值。 我们之前在 [Canvas之画布操作](https://github.com/GcsSloop/AndroidNote/blob/master/CustomView/Advance/%5B3%5DCanvas_Convert.md) 中讲解过的四种画布操作(translate, scale, rotate, skew)这些操作的核心就是改变Matrix的数值接下来我们看看这四种操作都会影响到哪些数值。