一看就懂的Matrix前乘与后乘

Matrix带来的效果

  • translate平移
  • rotate旋转
  • scale放缩
  • skew倾斜

使用matrix构造复杂的变换

通过连续的添加效果来“构造一个变换序列”,当rect执行这个变换序列的时候,顺序为从“最前到最后”

这个变换序列样式如下:

matrix.效果1;
matrix.效果2;
matrix.效果3;
matrix.效果4;
matrix.mapRect(YourRectf)

这个序列中的效果包含以下三种(当然这个序列的添加是按照代码执行顺序来的):

  • matrix.setXXX(清空序列,并设置XXX的效果)
  • matrix.preXXX(前乘,在序列最前面添加XXX的效果)
  • matrix.postXXX(后乘,在序列最后面添加XXX的效果)

严格的讲,setXXX这种会先清空序列,再在序列中添加效果,所以一般会写在代码最前面,然后根据代码执行顺序按照pre还是post在这个序列的头部或尾部插入效果。

举个栗子:

matrix.set效果1;
matrix.pre效果2;
matrix.post效果3;
matrix.pre效果4;
matrix.set效果5;
matrix.pre效果6;
matrix.post效果7;
matrix.pre效果8;
matrix.pre效果9;
matrix.post效果10;
matrix.pre效果11;
matrix.mapRect(YourRectf)

这个rect会执行的变换顺序为:11-9-8-6-5-7-10

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 手势图片控件 PinchImageView 点击图片框架 photoView packagecom.example...
    Ztufu阅读 743评论 0 1
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,144评论 1 32
  • CSDN博客 img cquwentao android matrix 最全方法详解与进阶(完整篇) 发表于201...
    北风知我意阅读 4,882评论 0 0
  • 毫无疑问,时间才是这世上最值钱的奢侈品,可悲的是在生命的大部分光景中,我们却把它当成了地摊货。 时光匆匆,不知不觉...
    黔工匠曾旭阅读 129评论 0 0
  • 在一般文化论者的表述里,游戏在中国的传统中是不占据分量和地位的,似乎是因为游戏与生俱来的不严肃性总是...
    浪子禅师阅读 813评论 0 3