Matrix带来的效果
- translate平移
- rotate旋转
- scale放缩
- skew倾斜
使用matrix构造复杂的变换
通过连续的添加效果来“构造一个变换序列”,当rect执行这个变换序列的时候,顺序为从“最前到最后”
这个变换序列样式如下:
matrix.效果1;
matrix.效果2;
matrix.效果3;
matrix.效果4;
matrix.mapRect(YourRectf)
这个序列中的效果包含以下三种(当然这个序列的添加是按照代码执行顺序来的):
- matrix.setXXX(清空序列,并设置XXX的效果)
- matrix.preXXX(前乘,在序列最前面添加XXX的效果)
- matrix.postXXX(后乘,在序列最后面添加XXX的效果)
严格的讲,setXXX这种会先清空序列,再在序列中添加效果,所以一般会写在代码最前面,然后根据代码执行顺序按照pre还是post在这个序列的头部或尾部插入效果。
举个栗子:
matrix.set效果1;
matrix.pre效果2;
matrix.post效果3;
matrix.pre效果4;
matrix.set效果5;
matrix.pre效果6;
matrix.post效果7;
matrix.pre效果8;
matrix.pre效果9;
matrix.post效果10;
matrix.pre效果11;
matrix.mapRect(YourRectf)
这个rect会执行的变换顺序为:11-9-8-6-5-7-10