主要是看aige博客,Matrix部分老忘,再看了一遍,现在把重点知识点记录下,怕忘了。
1.matrix.setXXX方法,是会重置matrix的。怎理解呢?
//假如做了以下两个变换,会发现,只有效的是Rotate
//原因是,在我们new了一个Matrix对象后,这个Matrix对象中已经就为我们
//封装了一组原始数据.而我们的setXXX方法执行的操作是把原本Matrix对象中的数据重置,重新设置新的数据
matrix.setTranslate(500, 500);
matrix.setRotate(5);
2.preXXX和postXXX一个是前乘一个是后乘。它的区别。
其实就是先执行后执行的问题,pre先执行,pos后执行。
举个栗子:
matrix.preScale(0.5f, 1);
matrix.setScale(1, 0.6f);
matrix.postScale(0.7f, 1);
matrix.preTranslate(15, 0);
那么Matrix的计算过程即为:translate (15, 0) -> scale (1, 0.6f) -> scale (0.7f, 1),我们说过set会重置数据,所以最开始的matrix.preScale(0.5f, 1); 就被setScale(1, 0.6f)干掉了.然后按照pre set pos 三个顺序执行。
就这样,如果你看完有收获给个赞。欢迎指教。