类说明
本质是一个大小为9的float数组,同时包含了对数组的矩阵操作方法(所有方法最终都调用底层C实现)
构造说明
默认构造(scaleX、scaleY、persp2为1.0,其他为0)
val m = Matrix()
复制构造(深拷贝)
val m = Matrix(oldMatrix)
方法说明
set(所有set相关的方法都会重置matrix数组,所以多次调用只有最后一次生效)
matrix.setTranslate(xt,yt)//平移值(xt:x轴平移量,yt:y轴平移量)
matrix.setScale(xs,ys)//缩放值(xs:x轴缩放比例,ys:y轴缩放比例)
matrix.setScale(xs,ys,cx,cy)//缩放值(xs,ys同上,cx:x轴缩放中心点,cy:y轴缩放中心点)
matrix.setValues(values)//所有值(values:float数组,适用平移值和缩放值等都有的情况)
post(后乘矩阵:newM*M)
平移
matrix.postTranslate(dx,dy)
缩放
matrix.postScale(sx,sy)
中心点缩放
matrix.postScale(sx,sy,px,py)//px,py为未缩放前的中心点
实际为以下组合
matrix.postTranslate(-px,-py)
matrix.postScale(sx,sy)
matrix.postTranslate(px,py)
pre(前乘矩阵:M*newM)
平移
matrix.preTranslate(dx,dy)
缩放
matrix.preScale(sx,sy)
中心点缩放
matrix.preScale(sx,sy,px,py)//px,py为未缩放前的中心点
实际为以下组合
matrix.preTranslate(px,py)
matrix.preScale(sx,sy)
matrix.preTranslate(-px,-py)