美文网首页
iOS-图层的那点事(一)二维变换

iOS-图层的那点事(一)二维变换

作者: LJMagicCoder | 来源:发表于2017-09-11 12:07 被阅读0次

图层变换 - 二维变换(仿射变换)(混合变换)(斜切变换)

这里 我们先认识一个宏
//度数转换
#define DEGREES_TO_RADIANS(x) ((x)/180.0*M_PI) //转换为多少度

仿射变换:
CGAffineTransform transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(15.0));  
CGAffineTransform transform = CGAffineTransformMakeScale(1, 1);            //设置拉伸或缩放(x为横向拉伸倍数,y为竖向拉伸倍数)
CGAffineTransform transform = CGAffineTransformMakeTranslation(100, 200);  //设置偏移量(x为横向偏移数(正值为右),y为竖向偏移数(正值为下)) 
_showView.layer.affineTransform = transform;    //添加仿射变换
斜切变换:
CGAffineTransform transform = CGAffineTransformIdentity;//创建一个斜切变换(-c为横向斜度,b为竖向斜度)
transform.c = -1;
transform.b = 0;
_showView.layer.affineTransform = transform;  //将创建的变换添加到图层中
混合变换:
  • 方法一:将已有变换添加变换属性生成新的变换
CGAffineTransform transform = CGAffineTransformIdentity;             //创建一个空的变换容器
transform = CGAffineTransformScale(transform, 0.5, 0.5);             //缩放
transform = CGAffineTransformRotate(transform, M_PI / 180.0 * 30.0);   //旋转
transform = CGAffineTransformTranslate(transform, 200, 0);          //位移 
_showView.layer.affineTransform = transform;                       //变换添加到图层中
  • 方法二:将两个变换合在一起
CGAffineTransform transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(1.0));    //设置旋转
CGAffineTransform transform2 = CGAffineTransformMakeScale(1, 1);    //设置拉伸或缩放(x为横向拉伸倍数,y为竖向拉伸倍数)
CGAffineTransform syntheticTransform = CGAffineTransformConcat(transform, transform2);         //将两个变换容器合成一个变换容器
_showView.layer.affineTransform = syntheticTransform;              //添加仿射变换

相关文章

  • iOS-图层的那点事(一)二维变换

    图层变换 - 二维变换(仿射变换)(混合变换)(斜切变换) 这里 我们先认识一个宏//度数转换#define DE...

  • Core Animation:变换

    二维空间上的变换 UIViwe可以通过属性transform进行变换,但它实际上只是封装了内部图层的变换。图层与之...

  • 仿射机制

    仿射变换源于CoreGraphics框架,主要作用是绘制2D级别的图层,2D仿射变换是其下负责二维坐标到二维坐标的...

  • 小白学PS的笔记~今日

    自由变换 1,变换可以针对整个图层(组成链接图层),或者选区内。 2,“编辑”~“自由变换”~空间框来控制的效果。...

  • iOS-图层的那点事(二)阴影与拉伸过滤

    阴影 阴影裁剪 拉伸过滤

  • iOS-CALayer (三)

    上一篇 : iOS-CALayer (二) 前言:继续深入学习动画,主要从变换、专用图层出发。 一、变换 用于图层...

  • Android开发之仿微博贴纸效果实现——基础篇

    之前写过一篇关于图像变换处理的文章《Android开发之图像处理那点事——变换》,学以致用,这次我们来实现仿微博的...

  • iOS 变换

    放射变换 当对图层应用变换矩阵,图层矩形内的每一个点都被相应地做变换,从而形成一个新的四边形的形状。CGAffin...

  • OpenCV C++(十)----傅里叶变换

    10.1、二维离散的傅里叶(逆)变换 10.1.1、原理 二维离散的傅里叶变换可以分解为一维离散的傅里叶变换: 图...

  • Core Graphics仿射变换知识

    这是补充记录关于CG的几何变换的一些知识,涉及到简单的矩阵变换 变换矩阵 在Core Graphics进行图层缩放...

网友评论

      本文标题:iOS-图层的那点事(一)二维变换

      本文链接:https://www.haomeiwen.com/subject/ulaxsxtx.html

      热点阅读