This commit is contained in:
sloop
2016-08-02 21:55:41 +08:00
committed by GitHub
parent afced6b7aa
commit eb4130c0fa

View File

@@ -433,7 +433,7 @@ matrix.postScale(0.5f, 0.5f, pivotX, pivotY);
在图像处理中越靠近右边的矩阵越先执行所以pre操作会先执行而post操作会后执行。
</s>
在实际操作中,我们每一步操作都会得出准确的计算结果,但是为什么还会用存在先后的说法? 难道真的能够用pre和post影响计算顺序? 这是因为矩阵乘法规则,用一个例子说明:
在实际操作中,我们每一步操作都会得出准确的计算结果,但是为什么还会用存在先后的说法? 难道真的能够用pre和post影响计算顺序? 实则不然,下面我们用一个例子说明:
>
```java
@@ -448,13 +448,14 @@ Log.e(TAG, "MatrixTest:3" + matrix.toShortString());
> 在上面例子中,计算顺序是没有问题的,先计算的缩放,然后计算的平移,而缩放影响到平移则是因为前一步缩放后的结果矩阵右乘了平移矩阵,这是符合矩阵乘法的运算规律的,也就是说缩放操作虽然在前却影响到了平移操作,**相当于先执行了平移操作然后执行的缩放操作因此才有pre操作会先执行而post操作会后执行这一说法**。
**假设我们需要先缩放再平移,下面我们用不同对方式来构造一个矩阵:**
### 下面我们用不同对方式来构造一个矩阵:
**假设我们需要先缩放再平移。**
>
注意:
* 1.由于矩阵乘法不满足交换律,请保证初始矩阵为空,如果初始矩阵不为空,则可能导致运算结果不同。
* 2.构造顺序,顺序是会影响结果的。
* 1.由于矩阵乘法不满足交换律,请保证使用初始矩阵(Initial Matrix),否则可能导致运算结果不同。
* 2.注意构造顺序,顺序是会影响结果的。
* 3.Initial Matrix是指new出来的新矩阵或者reset后的矩阵是一个单位矩阵。
#### 1.仅用pre
@@ -481,7 +482,7 @@ $$
\\left [
\\begin{matrix}
& &\\\\
& Empty Matrix &\\\\
& Initial Matrix &\\\\
& &
\\end{1}
\\right ]
@@ -543,7 +544,7 @@ sx & 0 & 0\\\\
\\left [
\\begin{matrix}
& &\\\\
& Empty Matrix &\\\\
& Initial Matrix &\\\\
& &
\\end{1}
\\right ]
@@ -592,7 +593,7 @@ $$
\\left [
\\begin{matrix}
& &\\\\
& Empty Matrix &\\\\
& Initial Matrix &\\\\
& &
\\end{1}
\\right ]