最近在运用Matrix进行绘图的操作。对Matrix的一些办法有了一些更深的领会,记下来,以便日后温习。
Matrix常用的办法:
(一)改换办法:
Matrix供给了translate(平移)、rotate(旋转)、scale(缩放)、skew(歪斜)四种操作,这四种操作的内部完成进程都是经过matrix.setValues(…)来设置矩阵的值来到达改换图片的作用。
Matrix的每种操作都有set、pre、post三种操作,set是清空行列再增加,pre是在行列最前面刺进,post是在行列最后面刺进。
pre办法表明矩阵前乘,例如:改换矩阵为A,原始矩阵为B,pre办法的意义便是A*B
post办法表明矩阵后乘,例如:改换矩阵为A,原始矩阵为B,post办法的意义便是B*A
1.matrix.preScale(0.5f, 1);
2.matrix.preTranslate(10, 0);
3.matrix.postScale(0.7f, 1);
4.matrix.postTranslate(15, 0);
等价于:
translate(10, 0) -> scale(0.5f, 1) -> scale(0.7f, 1) -> translate(15, 0)
留意:后调用的pre操作先履行,然后调用的post操作则后履行。
set办法一旦调用即会清空之前matrix中的一切改换,例如:
1.matrix.preScale(0.5f, 1);
2.matrix.setScale(1, 0.6f);
3.matrix.postScale(0.7f, 1);
4.matrix.preTranslate(15, 0);
等价于
translate(15, 0) -> scale(1, 0.6f) -> scale(0.7f, 1)
matrix.preScale (0.5f, 1)将不起作用。
(二)映射办法
Matrix供给了mapXXX的办法,用于获取经matrix映射之后的值。主要有:mapPoints,mapRects,mapVectors等办法。
这些办法你会运用到:在你需求记住matrix操作之后的数值的时分。比方:记住矩形旋转34°(rotate)之后四个点的坐标。(你能够尝试着自己核算,你会发现很杂乱,还不准确)
需求留意的是,matrix的某些办法运用到中心点的时分,假如不设置,默许是以(0,0)为中心点的。
记下来,避免忘掉。