时间:2021-05-20
Matrix调用一系列set,pre,post方法时,可视为将这些方法插入到一个队列。当然,按照队列中从头至尾的顺序调用执行。
其中pre表示在队头插入一个方法,post表示在队尾插入一个方法。而set表示把当前队列清空,并且总是位于队列的最中间位置。当执行了一次set后:pre方法总是插入到set前部的队列的最前面,post方法总是插入到set后部的队列的最后面。
例一:
Matrix m = new Matrix();m.setRotate(45); m.setTranslate(80, 80);只有m.setTranslate(80, 80)有效,因为m.setRotate(45);被清除.
例子二:
Matrix m = new Matrix();m.setTranslate(80, 80);m.postRotate(45);先执行m.setTranslate(80, 80);后执行m.postRotate(45);
例子三:
Matrix m = new Matrix();m.setTranslate(80, 80);m.preRotate(45);先执行m.setTranslate(80, 80);后执行m.preRotate(45);
例子四:
Matrix m = new Matrix();m.preScale(2f,2f); m.preTranslate(50f, 20f); m.postScale(0.2f, 0.5f); m.postTranslate(20f, 20f);执行顺序:m.preTranslate(50f, 20f)-->m.preScale(2f,2f)-->m.postScale(0.2f, 0.5f)-->m.postTranslate(20f, 20f)
注意:m.preTranslate(50f, 20f)比m.preScale(2f,2f)先执行,因为它查到了队列的最前端.
例子五:
Matrix m = new Matrix();m.postTranslate(20, 20); m.preScale(0.2f, 0.5f);m.setScale(0.8f, 0.8f); m.postScale(3f, 3f);m.preTranslate(0.5f, 0.5f);执行顺序:m.preTranslate(0.5f, 0.5f)-->m.setScale(0.8f, 0.8f)-->m.postScale(3f, 3f)
注意:m.setScale(0.8f, 0.8f)清除了前面的m.postTranslate(20, 20)和m.preScale(0.2f, 0.5f);
以上这篇Matrix的set,pre,post调用顺序详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
说set、pre、post的区别之前,先说说Matrix。Matrix包含一个3X3的矩阵,专门用于图像变换匹配。Matrix提供了四种操作:•tr
java中Set与Map排序输出到Writer详解及实例一般来说java.util.Set,java.util.Map输出的内容的顺序并不是按key的顺序排列的
本节引言:1.Matrix中的几个常用的变换方法其实和Canvas变换的方法基本一致,在为Matrix设置了上面的变换后,调用Canvas的drawBitmap
set命令详解在批处理中回显信息有两个命令,echo和set/p=
作用:调用方法改为调用对象,比如:p.set_name()改为p.set_name区别:前者改变get方法,后者改变set方法效果图:代码:classPerso