图片变换【Matrix】矩阵 简介
Matrix矩阵介绍
- MSCALE_X = 0; X缩放
- MSKEW_X = 1; X错切
- MTRANS_X = 2; X移动
- MSKEW_Y = 3; Y错切
- MSCALE_Y = 4; Y缩放
- MTRANS_Y = 5; Y移动
- MPERSP_0 = 6; 透视,透视就是观察的角度变化了。导致投射到平面上的二维图像变化了。
- MPERSP_1 = 7; 透视
- MPERSP_2 = 8; 透视
关于错切

操作示例
常用API
- public Matrix():Create an identity matrix 单位矩阵
- public Matrix(Matrix src):根据提供的矩阵创建一个新的矩阵。Create a matrix that is a (deep) copy of src
- set(Matrix src):复制。(deep) copy the src matrix into this matrix.
- setValues(float[]):用指定的值进行初始化
- getValues(float[]):通过把拿到的矩阵值赋给传入的数组。Copy 9 values from the matrix into the array.
- reset:重置矩阵为单位矩阵。Set the matrix to identity
- invert(Matrix inverse):反转、倒置。如果能反转就返回true并将反转后的值写入inverse,否则返回false。【当前矩阵*inverse=单位矩阵】
- setTranslate(float dx,float dy):控制Matrix进行平移。右下为正
- setSkew(float kx,float ky):控制Matrix以(0,0)为中心进行错切,kx、ky为X、Y方向上的比例
- setRotate(float degrees):控制Matrix以(0,0)为中心进行depress角度的旋转,顺时针为正
- setSinCos(float sinValue, float cosValue):不指定旋转角度,而是指定旋转角度对应的sin和cos值,比如,向右旋转90°时,对应的sin值为sin90°=1,对应的con值为cos90°=0。不指定中心点时的中心点为(0,0)。Set the matrix to rotate by the specified指定的 sine and cosine values, with a pivot中心点 point at (px, py).
- setScale(float sx,float sy):设置Matrix以(0,0)为中心进行缩放,sx、sy为X、Y方向上的缩放比例。如果为负,那么会将该图像绘制到坐标系统的负值空间
- 除平移变换外,旋转变换、缩放变换和错切变换都可以围绕一个中心点来进行,如果不指定,在默认情况下是围绕(0, 0)来进行相应的变换的。
- 以上的set方法(除了setSinCos方法),均有对应的post和pre方法。其中pre表示在队头插入一个方法(相当于矩阵中的右乘),post表示在队尾插入一个方法(相当于矩阵中的左乘),而set表示把当前队列清空,并且总是位于队列的最中间位置。
- 当执行了一次set后,前面所有的set、pre、post都将清空,后续的pre方法总是插入到set前部的队列的最前面,post方法总是插入到set后部的队列的最后面。
- Matrix调用一系列set、pre、post方法时,可视为将这些方法插入到一个队列,最后按照队列中从头至尾的顺序调用执行。
- isIdentity():判断是否是单位矩阵
- isAffine():判断是否是仿射矩阵,只要最后一行是0,0,1则是仿射矩阵。
- rectStaysRect():判断该矩阵是否可以将一个矩形依然变换为一个矩形。当矩阵是单位矩阵,或者只进行平移,缩放,以及旋转90度的倍数的时候,返回true。Returns true if will map a rectangle to another rectangle.
- setConcat(Matrix a, Matrix b):将当前matrix的值变为a和b的乘积。Set the matrix to the concatenation关联 of the two specified matrices and return true.
Matrix方法表
图片变换【Matrix】矩阵 简介的更多相关文章
- 图片变换 矩阵 Bitmap Matrix
Matrix矩阵介绍 在Android中,对图片的处理需要使用到Matrix类,Matrix是一个3 x 3的矩阵,内部就是个一维数组,内部有9个元素:可以通过setValues( float[])进 ...
- 【CSS3】 理解CSS3 transform中的Matrix(矩阵)
理解CSS3 transform中的Matrix(矩阵) by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu ...
- 理解CSS3 transform中的Matrix(矩阵)
一.哥,我被你吓住了 打架的时候会被块头大的吓住,学习的时候会被奇怪名字吓住(如“拉普拉斯不等式”).这与情感化设计本质一致:界面设计好会让人觉得这个软件好用! 所以,当看到上面“Matrix(矩阵) ...
- 理解CSS3 transform中的Matrix(矩阵)——张鑫旭
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=2427 一.哥,我被你 ...
- [Android] 使用Matrix矩阵类对图像进行缩放、旋转、对照度、亮度处理
前一篇文章讲述了Android拍照.截图.保存并显示在ImageView控件中,该篇文章继续讲述Android图像处理技术,主要操作包含:通过打开相冊里的图片,使用Matrix对图像进行缩放. ...
- 前端matrix矩阵的变化
css3 transform中的matrix矩阵 CSS3中的矩阵CSS3中的矩阵指的是一个方法,书写为matrix()和matrix3d(),前者是元素2D平面的移动变换(transform), ...
- css3 transform中的matrix矩阵
CSS3中的矩阵CSS3中的矩阵指的是一个方法,书写为matrix()和matrix3d(),前者是元素2D平面的移动变换(transform),后者则是3D变换.2D变换矩阵为3*3, 如上面矩阵示 ...
- Android图片加载框架最全解析(五),Glide强大的图片变换功能
大家好,又到了学习Glide的时间了.前段时间由于项目开发紧张,再加上后来又生病了,所以停更了一个月,不过现在终于又可以恢复正常更新了.今天是这个系列的第五篇文章,在前面四篇文章的当中,我们已经学习了 ...
- Leetcode 566. Reshape the Matrix 矩阵变形(数组,模拟,矩阵操作)
Leetcode 566. Reshape the Matrix 矩阵变形(数组,模拟,矩阵操作) 题目描述 在MATLAB中,reshape是一个非常有用的函数,它可以将矩阵变为另一种形状且保持数据 ...
随机推荐
- ref:一系列用于Fuzzing学习的资源汇总
ref:http://www.freebuf.com/articles/rookie/169413.html 一系列用于Fuzzing学习的资源汇总 secist2018-04-30共185833人围 ...
- 用php写的一个猜数字的程序
写一个php的猜数字的小程序,提高自己对php的熟悉程度. <?php $count=rand(0,100); $number = (isset($_POST['number'])) ? $_P ...
- 湖南大学ACM程序设计新生杯大赛(同步赛)J - Piglet treasure hunt Series 2
题目描述 Once there was a pig, which was very fond of treasure hunting. One day, when it woke up, it fou ...
- Qt Installer Framework实战
Qt Installer Framework是Qt发布的安装程序支持框架,只需要简单的配置就可以生成安装文件,同时可以通过javascript脚本来定制安装过程. 目录结构 config packag ...
- centos7 默认进入系统命令行模式修改
systemctl get-default #查看系统启动进入默认模式 systemctl set-default graphical.target #改成默认进入 图形界面模式 systemctl ...
- iOS 9音频应用播放音频之第一个ios9音频实例2
iOS 9音频应用播放音频之第一个ios9音频实例2 ios9音频应用关联 iOS9音频应用中对于在主视图上添加的视图或控件,在使用它们时必须要与插座变量进行关联.ios9插座变量其实就是为主视图中的 ...
- T型知识实践结构的力量(转载)
最近在做的一些新的事情,这其中获得的一些新的思考. T型的知识积累,深度的挖掘可以通过"举一反三"的应用在广度上,广度可以通过"交叉验证"加强我们的认识,可以说 ...
- 深入理解javascript作用域系列第二篇
前面的话 大多数时候,我们对作用域产生混乱的主要原因是分不清楚应该按照函数位置的嵌套顺序,还是按照函数的调用顺序进行变量查找.再加上this机制的干扰,使得变量查找极易出错.这实际上是由两种作用域工作 ...
- [BZOJ3143][HNOI2013]游走(期望+高斯消元)
3143: [Hnoi2013]游走 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3576 Solved: 1608[Submit][Status ...
- 哈希表(散列表)—Hash表解决地址冲突 C语言实现
哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.具体的介绍网上有很详 ...