这篇文章主要用于本人查阅资料所写。如果对你也有所帮助,那么也请你可以把更多更好的作品分享给所有开发人员,大家共同学习进步。再次,很感谢http://chroya.javaeye.com/blog/712078该文章的作者,他对Matrix的了解很全面。再次感谢。
下面的解释来自http://chroya.javaeye.com/blog/712078,再次感谢。
Matrix ,中文里叫矩阵,高等数学里有介绍,在图像处理方面,主要是用于平面的缩放、平移、旋转等操作。
首先介绍一下矩阵运算。加法和减法就不用说了,太简单了,对应位相加就好。图像处理,主要用到的是乘法 。下面是一个乘法的公式:
在 Android 里面, Matrix 由 9 个 float 值构成,是一个 3*3 的矩阵。如下图。
没专业工具,画的挺难看。解释一下,上面的 sinX 和 cosX ,表示旋转角度的 cos 值和 sin 值,注意,旋转角度是按顺时针方向计算的。 translateX 和 translateY 表示 x 和 y 的平移量。 scale 是缩放的比例, 1 是不变, 2 是表示缩放 1/2 ,这样子。
本人愚昧,实现的代码如下: