Update
This commit is contained in:
@@ -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操作会后执行这一说法**。
|
||||
|
||||
|
||||
**假设我们需要先缩放再平移,下面我们用不同对方式来构造这一个矩阵:**
|
||||
|
||||
Reference in New Issue
Block a user