1、什么是Matrix?
官方的释义:The Matrix class holds a 3x3 matrix for transforming coordinates
翻译一下:矩阵类包含一个用于变换坐标的3x3矩阵
2、如何搞懂Matrix?
我们只关心旋转、位移和缩放,只有透视和错切暂时不理会,有兴趣的自行研究。
我们先测试一下,看看Matrix里面到底存的是什么:
Matrix mMatrix=new Matrix();
//打印矩阵中的数据
Log.i("Matrix",mMatrix.toShortString());
结果:
[1.0, 0.0, 0.0][0.0, 1.0, 0.0][0.0, 0.0, 1.0]
放到上面的图里,看一下:
然后我们验证一下:
Matrix mMatrix=new Matrix();
//放到两倍
mMatrix.postScale(2,2);
Log.i("Matrix",mMatrix.toShortString());
结果:
[2.0, 0.0, 0.0][0.0, 2.0, 0.0][0.0, 0.0, 1.0]
Matrix mMatrix=new Matrix();
//放到两倍
mMatrix.postScale(2,2);
//平移X-150,Y-200
mMatrix.postTranslate(150,200);
Log.i("Matrix",mMatrix.toShortString());
结果:
[2.0, 0.0, 150.0][0.0, 2.0, 200.0][0.0, 0.0, 1.0]
//旋转30度
mMatrix.postRotate(30);
Log.i("Matrix",mMatrix.toShortString());
double sin = Math.sin(30);
Log.i("Matrix",sin+"");
结果:
[0.8660254, -0.5, 0.0][0.5, 0.8660254, 0.0][0.0, 0.0, 1.0]
-0.9880316240928618
关于角度的测试,直接引用