Matrix简单使用

Matrix是一个3*3的矩阵:

[img]http://dl.iteye.com/upload/attachment/553786/b0d9231a-5d2d-3645-9287-28caa899a28e.png[/img]
平移的矩阵计算:
现设点P0(x0, y0)进行平移后,移到P(x,y),其中x方向的平移量为△x,y方向的平移量为△y,那么,点P(x,y)的坐标为:
x = x0 + △x
y = y0 + △y
采用矩阵表达上述如下:

[img]http://dl.iteye.com/upload/attachment/553791/5fc7e45a-c013-39a5-9c52-51621605088f.jpg[/img]

图像旋转的矩阵计算:
现设点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θ

于是我们得到矩阵:

[img]http://dl.iteye.com/upload/attachment/553793/869c6111-82c2-3790-a994-56f446f3bb7f.jpg[/img]

矩阵的放大缩小:
放大缩小是利用最下面的一行数值改变实现的。右下角的数值n>1表示缩放n,n<1表示扩展n倍

旋转和放大缩小是以当前左上角进行的。因此如果要以某点(x,y)旋转或者缩放,需要进行:

matrix.setScale(0.5f,0.5f);
matrix.preTranslate(-x,-y);
matrix.postTranslate(x,y);

执行顺序-->平移元素,将点(x,y)移动到元素左上角,缩小元素为原来的一半,将元素平移到原来的位置。
旋转也是用同样的方式。注意先后顺序。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值