This commit is contained in:
sloop
2016-08-02 21:30:28 +08:00
committed by GitHub
parent 0a0b701466
commit c34b0e6353

View File

@@ -425,8 +425,25 @@ matrix.postScale(0.5f, 0.5f, pivotX, pivotY);
### Pre与Post的区别
主要区别其实就是矩阵的乘法顺序不同pre相当于矩阵的右乘而post相当于矩阵的左乘在图像处理中越靠近右边的矩阵越先执行所以pre操作会先执行而post操作会后执行
主要区别其实就是矩阵的乘法顺序不同pre相当于矩阵的右乘而post相当于矩阵的左乘。
以下观点存在歧义,故做删除标注:
<s>
在图像处理中越靠近右边的矩阵越先执行所以pre操作会先执行而post操作会后执行。
</s>
在实际操作中,我们每一步都会得出计算结果,但是为什么还会用存在先后的说法? 这是因为矩阵乘法规则,用一个例子说明:
>
```java
Matrix matrix = new Matrix();
matrix.postScale(0.5f, 0.8f);
matrix.preTranslate(1000, 1000);
Log.e(TAG, "MatrixTest:3" + matrix.toShortString());
```
>
在上面的操作中,如果按照正常的思路,先缩放,后平移,缩放操作执行在前,不会影响到后续的平移操作,但是执行结果却发现平移距离变成了(500 800),这一结果是符合矩阵乘法的运算规律的,也就是说缩放操作影响到了平移操作,**相当于先执行了平移操作然后执行的缩放操作因此才有pre操作会先执行而post操作会后执行这一说法**。
**假设我们需要先缩放再平移,下面我们用不同对方式来构造这一个矩阵:**