iOS transform(2D仿射)

主要分3个部分说明。 1.基础及矩阵概念 2.2D仿射 3.3D仿射

1.CGAffineTrans的API

带Make的:起点固定,每次控制的事件只针对起点。 不带Make的:为一个变换再加上平移,针对上一个位置,不针对起点。

//位移仿射
CGAffineTransformMakeTranslation
CGAffineTransformTranslate
//旋转仿射
CGAffineTransformMakeRotation
CGAffineTransformRotate
//缩放仿射
CGAffineTransformMakeScale
CGAffineTransformScale
//叠加仿射效果
CGAffineTransformConcat
//仿射矩阵方法,可以直接做效果叠加
CGAffineTransformMake (sx,shx,shy,sy,tx,ty)

2.仿射变换概念

个人理解就是:点p(以二维坐标为例)通过仿射矩阵C 后变成新的点p' 。 平移演化

//仿射矩阵
//A是m×n矩阵和B是n×p矩阵,它们的乘积C是一个m×p矩阵
//1行3列 * 3行3列 = 1行3列
[x,y,1] * [a  b  0] = [x',y',z']
          [c  d  0]
          [tx ty 1]


设a,d=1 c,b = 0 那么
x' = a*x + c*y + tx
y' = b*x + d*y + ty
z' = 0*x + 0*y + 1*1
就变成了
x' = x + tx
y' = y + ty

所以移动因子就是 tx ty。 再来看看方法:

向右移动300的仿射效果
CGAffineTransform translate = CGAffineTransformMakeTranslation(300, 0)
使用仿射基础方法 
CGAffineTransform translate = CGAffineTransformMake(1,0,0,1,300,0)
//CGAffineTransformMake(CGFloat a,CGFloat b,CGFloat c,CGFloat d,CGFloat tx,CGFloat ty)

缩放演化,旋转演化以上类似。

3.Tip

通过CGAffineTrans就可以实现贴纸的功能,根据手势对贴纸进行放大,缩小,旋转等功能。 我写的DEMO:点这跳转,记得点Star

关于翻转和一些3D变化就需要 CATransform3D,下一章再讲解。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python私房菜

用Python写算法 | 蓄水池算法实现随机抽样

现在有一组数,不知道这组数的总量有多少,请描述一种算法能够在这组数据中随机抽取k个数,使得每个数被取出来的概率相等。

1731
来自专栏码云1024

a-start寻路算法

在英雄联盟之中,当你和你的队友都苦苦修炼到十八级的时候,仍然与敌方阵营不分胜负,就在你刚买好装备已经神装的时候,你看见信息框中一条队友的消息:“大龙集合”,这个...

3552
来自专栏程序员叨叨叨

7.5 语义词(Semantic)与语义绑定(Binding Semantics)

语义词,表示输入图元的数据含义(是位置信息,还是法向量信息),也表明这些图元数据存放的硬件资源(寄存器或者纹理缓冲区)。顶点着色程序和片段着色程序中 Varyi...

1422
来自专栏懒人开发

(1.6)James Stewart Calculus 5th Edition: Inverse Functions and Logarithms

前面我们有提到 e,e的对数,我们可以简写, 理解为 Natural Logarithms 自然对数

1313
来自专栏利炳根的专栏

学习笔记CB013: TensorFlow、TensorBoard、seq2seq

tensorflow基于图结构深度学习框架,内部通过session实现图和计算内核交互。

4617
来自专栏进击的程序猿

xgboost 库使用入门

本文 github 地址:1-1 基本模型调用. ipynb,里面会记录自己kaggle大赛中的内容,欢迎start关注。

3784
来自专栏贾老师の博客

启发式寻路算法

6023
来自专栏ATYUN订阅号

四个用于Keras的很棒的操作(含代码)

Keras是最广泛使用的深度学习框架之一。它在易于使用的同时,在性能方面也与TensorFlow,Caffe和MXNet等更复杂的库相当。除非你的应用程序需要一...

2114
来自专栏码云1024

游戏中的人物是如何寻路的?

50613
来自专栏Fish

TensorFlow编程入门(一)

写在最前 深度学习辣么火,感觉应该学习学习以免以后人家讲座什么的听不懂。因此想要从应用层面出发,学习学习,那就看看怎么用tensorflow(以下简称tf)做神...

1946

扫码关注云+社区

领取腾讯云代金券