矩阵在android图形中的应用

矩阵在android 图形 中的应用

一个数组在线性代数上可以看成是一个向量。而一个向量,可以通过一个矩阵乘法((一个矩阵行的每一个值乘以另一个矩阵列的每一个值)转化为另一个向量。

android中的点的坐标位置,和颜色值 ,都是一个数组,也都可以看成一个向量。所以他们的变换,实际上应用到线性代数上的矩阵来进行变换。

一个NxN 的矩阵乘以一个N维的向量 ,可以得到转换后的新向量 ,但是由于一般矩阵不能解决偏移量的问题,比如坐标点的偏移,具体见参考,我们可以用 N+1 维的齐次坐标变换矩阵 来解决这个问题。(矩阵的最后一行是固定值,可以忽略) 所以坐标点(x,y) 需要 三维矩阵。而颜色[R, G, B, A] 需要 5维矩阵(或者 5 x 4) 就可以了。 所以 颜色矩阵 ColorMatrix 需要5 x 4 20 个数 [ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t ] 他的颜色变换公式,就是使用矩阵的乘法(行乘以列),新颜色 的值为 R' = a*R + b*G + c*B + d*A + e; G' = f*R + g*G + h*B + i*A + j; B' = k*R + l*G + m*B + n*A + o; A' = p*R + q*G + r*B + s*A + t;


图片变换和动画 ,其实都可以看成是点 坐标的变换,都会用到 Matrix 类。 而一个图像的颜色改变,(改变 亮度,饱和度,对比度,一般就是 颜色值得变换 ,往往会用到ColorMatrix和 ColorMatrixColorFilter 。 了解矩阵变换的原理,就容易理解Matrix和ColorMatrix 类的使用,就可以很方便的处理图像的形状和颜色。


矩阵的pre post 是先后处理 ,而 set 设置 会清除掉当前的 pre post 设置。


矩阵乘法 http://zh.wikipedia.org/wiki/%E7%9F%A9%E9%99%A3%E4%B9%98%E6%B3%95

矩阵的坐标变换 http://blog.sina.com.cn/s/blog_866fdeb60100xr1f.html

Android图片处理(Matrix,ColorMatrix) http://www.cnblogs.com/leon19870907/articles/1978065.html

Android实现图片倒影效果 http://www.cnblogs.com/jh5240/archive/2012/04/22/2464795.html

Android中Matrix的pre post set方法理解 http://www.linuxidc.com/Linux/2012-07/65035.htm 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值