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 条评论
登录 后参与评论

相关文章

来自专栏深度学习之tensorflow实战篇

Python生成词云图,TIIDF方法文本挖掘: 词频统计,词云图

python中使用wordcloud包生成的词云图。 下面来介绍一下wordcloud包的基本用法。 class wordcloud.WordCloud(fon...

3666
来自专栏MelonTeam专栏

日迹中视频编辑滤镜效果实现方法

导语 本文简要分析,日迹视频解码流程以及视频滤镜的实现原理 需求背景:日迹需要的编辑滤镜效果预览图 图1:日迹滤镜效果 要实现产品想要的...

2418
来自专栏GIS讲堂

Dojo Chart之常用统计图

很多做web的都知道,在很多web系统中会涉及到一些统计图,例如饼状图,柱状图、趋势图、以及叠加图等。提到这儿,做web的都很熟悉的,jquery的highch...

421
来自专栏CDA数据分析师

【图表大师三】仿gartner清爽圆角矩阵图

在Gartner的报告中,常看到如下图的清爽圆角矩阵图。 ? 我很喜欢这种清爽的图表风格,其特点有:干净清爽的颜色,优雅的圆角绘图区,个性的XY坐标轴。...

1806
来自专栏我分享我快乐

CSS3滤镜效果可在动画中使用

<!doctype html> <html> <head> <style> img{display:block;} .box{width:600px;} .bo...

3348
来自专栏刘望舒

几条曲线构建Android表白程序

每年的情人节和七夕,甜蜜与痛苦的日子,做点什么好呢? 写诗画画送礼物,逛街吃饭看电影? 作为搬砖爱好者,写个表白脚本或者动画什么的吧。 想起之前看到的一段H5动...

673
来自专栏一心无二用,本人只专注于基础图像算法的实现与优化。

SSE图像算法优化系列十二:多尺度的图像细节提升。

无意中浏览一篇文章,中间提到了基于多尺度的图像的细节提升算法,尝试了一下,还是有一定的效果的,结合最近一直研究的SSE优化,把算法的步骤和优化过程分享给大家。...

1998
来自专栏非著名程序员

基础篇章:关于 React Native 之 Slider 组件的讲解

(友情提示:RN学习,从最基础的开始,大家不要嫌弃太基础,会的同学请自行略过,希望不要耽误已经会的同学的宝贵时间) 来,讲这个组件之前,我们先学习一下英文单词,...

2328
来自专栏练小习的专栏

渲染放大的图片image-rendering笔记

image-rendering: pixelated,控制浏览器如何渲染放大的图片,比如图像的自然尺寸为100×100像素,但网页指定其尺寸不为100*100像...

2016
来自专栏邹成卓的专栏

Unity3D WebCamTexture 取帧渲染、像素读取的终端适配

由于Win/Mac/Adnroid/iOS等各系统平台和硬件环境下,WebCamTexture 用于渲染和图像计算时表现不完全一致,很容易造成图像渲染或者计算不...

4550

扫码关注云+社区