加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Android中Matrix的set、pre、post的差异

发布时间:2021-11-23 14:07:37 所属栏目:PHP教程 来源:互联网
导读:说set、pre、post的区别之前,先说说Matrix。 Matrix包含一个3 X 3的矩阵,专门用于图像变换匹配。 Matrix提供了四种操作: translate(平移) rotate(旋转) scale(缩放) skew(倾斜) 也就是说这4种操作都是对这个3 X 3的矩阵设值来达到变换的效果。 Matrix没有

说set、pre、post的区别之前,先说说Matrix。
 
Matrix包含一个3 X 3的矩阵,专门用于图像变换匹配。
 
Matrix提供了四种操作:
 
translate(平移)
rotate(旋转)
scale(缩放)
skew(倾斜)
也就是说这4种操作都是对这个3 X 3的矩阵设值来达到变换的效果。
 
Matrix没有结构体,它必须被初始化,通过reset或set方法。
 
OK,Matrix介绍完了,我们来看看set、pre、post的区别。
 
pre是在队列最前面插入,post是在队列最后面追加,而set先清空队列在添加(这也是上文提到的“Matrix没有结构体,它必须被初始化,通过reset或set方法”的原因)。
 
下面通过一些例子具体说明:
 
matrix.preScale(2f,1f);    
matrix.preTranslate(5f, 0f);   
matrix.postScale(0.2f, 1f);    
matrix.postTranslate(0.5f, 0f);  
执行顺序:translate(5, 0) -> scale(2f, 1f) -> scale(0.2f, 1f) -> translate(0.5f, 0f)
matrix.postTranslate(2f, 0f);   
matrix.preScale(0.2f, 1f);     
matrix.setScale(1f, 1f);   
matrix.postScale(5f, 1f);   
matrix.preTranslate(0.5f, 0f);   
执行顺序:translate(0.5f, 0f) -> scale(1f, 1f) ->  scale(5f, 1)

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读