matrix详细说明

android matrix使用和详细说明

为君一笑 提交于 2019-11-27 17:35:43
以前在线性代数中学习了矩阵,对矩阵的基本运算有一些了解,前段时间在使用GDI+的时候再次学习如何使用矩阵来变化图像,看了之后在这里总结说 明。 首先大家看看下面这个3 x 3的矩阵,这个矩阵被分割成4部分。为什么分割成4部分,在后面详细说明。 首先给大家举个简单的例子:现设点P0(x0, y0)进行平移后,移到P(x,y),其中x方向的平移量为△x,y方向的平移量为△y,那么,点P(x,y)的坐标为: x = x0 + △x y = y0 + △y 采用矩阵表达上述如下: 上述也类似与图像的平移,通过上述矩阵我们发现,只需要修改矩阵右上角的2个元素就可以了。 我们回头看上述矩阵的划分: 为了验证上面的功能划分,我们举个具体的例子:现设点P0(x0 ,y0)进行平移后,移到P(x,y),其中x放大a倍,y放大b倍, 矩阵就是: ,按照类似前面“平移”的方法就验证。 图像的旋转稍微复杂:现设点P0(x0, y0)旋转θ角后的对有点为P(x, y)。通过使用向量,我们得到如下: x0 = r cosα y0 = r sinα x = r cos(α-θ) = x0 cosθ+ y0 sinθ y = r sia(α-θ) = -x0 sinθ+y0 cosθ 于是我们得到矩阵: 如果图像围绕着某个点(a ,b)旋转呢?则先要将坐标平移到该点,再进行旋转