安卓中变换Matrix的学习

Matrix

首先Google一下这个词的意思

ok, 本内容主要学习安卓中Matrix的使用

如果要学习安卓中的矩阵的话,首先学习一下数学中的矩阵。这个高中的时候好像学过。大概长这个样子:

这就是个2*2 的矩阵了。

矩阵可以加,减,数乘,乘,转置,共轭和共轭转置后面三个高大上的就不看了

加减比较容易如:

也就是各个位置上的数加或减,得到的结果就是两矩阵加或减,需要注意的是两个矩阵要是同型矩阵,同型。。。同性。。。Emmm果然同性才是真爱

先看看数乘:

前面的数分别和矩阵中各个位置上的数相乘就阔以了

在看一下乘法,两个矩阵的乘法仅当第一个矩阵A的列数和另一个矩阵B的行数相等时才能定义。如Am×n矩阵和Bn×p矩阵,它们的乘积C是一个m×p矩阵

  

阔以看到乘法的规则是

第一个矩阵的第一行各个数  *  第二个矩阵的第一列各个数 = 结果矩阵的第一行第一列的数

 

第一个矩阵的第一行各个数  * 第二个矩阵的第二列各个数 = 结果矩阵的第一行第二列的数

以此类推

另外从上面看出乘法不满足交换律

数学矩阵基础先到这里。

看一下安卓中Matrix类的概要

矩阵类用一个3x3的矩阵来处理坐标转换

下面有9个字段,如果放在矩阵中就是这样的

这个是根据常量的值来放的

先创建一个Matrix类的对象,看看这几个字段对应的值是多少

[1.0 ,0.0 ,0.0 ,0.0 ,1.0 ,0.0 ,0.0 ,0.0 ,1.0 ,]    

matrix.setRotate(30);

设置旋转角度30之后

值变成了

先看一下效果图,

顺时针旋转了30度。怎么做到的呢?

假定有一个点 ,相对坐标原点顺时针旋转后的情形,同时假定P点离坐标原点的距离为r,如下图:

那么就有:

换做矩阵运算就如下图:

这样就能看出来设置角度是如何作用于像素点x,y的坐标了

如果是缩放呢? 试着设置

matrix.setScale(3,3);

效果图

可以看出,图被放大了3倍,对应matrix中的值是

 

从上面两个例子中,可以看出缩放和旋转只用了左上角四个变量就阔以完成了

在看一下移动吧设置matrix.setTranslate(200,20);

效果图:

对应matrix中的值是

 

也就是右上角两个值是处理平移的

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值