2D仿射变换
UIView的transform属性是一个CGAffineTransform类型,用于在二维空间做旋转,缩放和平移。CGAffineTransform是一个可以和二维空间向量(例如CGPoint)做乘法的3X2的矩阵:
1240
Paste_Image.png
当对UIView应用变换矩阵,UIView图层矩形内的每一个点都被相应地做变换,从而形成一个新的四边形的形状。CGAffineTransform中的“仿射”的意思是无论变换矩阵用什么值,图层中平行的两条线在变换之后任然保持平行.
单位矩阵
CGAffineTransformIdentity
CGAffineTransform transform = CGAffineTransformIdentity;
结果:
(CGAffineTransform) transform = (a = 1, b = 0, c = 0, d = 1, tx = 0, ty = 0)
创建仿射变换矩阵
CGAffineTransformMakeRotation(CGFloat angle) // 旋转
CGAffineTransformMakeScale(CGFloat sx, CGFloat sy) // 缩放
CGAffineTransformMakeTranslation(CGFloat tx, CGFloat ty) // 平移
CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI_4);
结果 :
(CGAffineTransform) transform = (a = 0.70710678118654757, b = 0.70710678118654746, c = -0.70710678118654746, d = 0.70710678118654757, tx = 0, ty = 0)
CGAffineTransform transform = CGAffineTransformMakeScale(0.8, 0.8);
结果:
(CGAffineTransform) transform = (a = 0.80000000000000004, b = 0, c = 0, d = 0.80000000000000004, tx = 0, ty = 0)
CGAffineTransform transform = CGAffineTransformMakeTranslation(10, 10);
结果:
(CGAffineTransform) transform = (a = 1, b = 0, c = 0, d = 1, tx = 10, ty = 10)
1240
Paste_Image.png
图中,灰色为旧图,蓝色为变化后的新图.
阅读全文直接点击:
http://click.aliyun.com/m/10253/
分享到:
相关推荐
后续bug修复、功能更新将会上传到GitHub GitHub地址:https://github.com/wangxiaocan/XCCollectionViewLayout.git 简书地址:https://www.jianshu.com/p/6fc45587f91b
给图片添加捏合和旋转手势,应用仿射变换写出相应的响应方法。北京智美方成ios面试题。详细讲解: http://a3.work/a/oc/103.html
- [iOS动画和特效(七)仿射变换-CGAffineTransform](http://liuyanwei.jumppo.com/2015/11/24/iOS-affine-transfermation-animation.html) demo代码和教程 请到github上更新最新教程 ...
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...
2.仿射变换,用到仿射变换的缩放,平移和合并,视图动画 3.navigationBar的样式设置 实现效果,如下: 本Demo图片来源微信安装包解压得到的图片 实现代码: // // ViewController.m // appXX-微信更多工具栏 // // ...
包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python...
作者wangxiaocan,源码XCCollectionViewLayout.git,UICollectionView滑动放大、仿射变换、瀑布流效果
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...
这是iOS中动画绝佳的例子,利用放射变换和uiview,制作出非常友好的动画效果。同时代码写的非常优雅(very elegant!!)
亲和的东西在 CA 层上使用仿射变换并查看 CGAffineTransform 字段的简单示例。 用 Swift 编写。
//修改uiview 的矩阵,仿射变换 imageView.transform = a; //设置阴影偏移量(正值往右偏,正值往下偏移) label.shadowOffset=CGSizeMake(5, 10); //在oc中,空对象调用方法或属性不会引起程序报错或崩溃...
精仿唱吧App音乐下载按钮,完美快速集成使用 ...2.动画是用关键帧和仿射变换 3.运动路径是随机给点,运用二次贝塞尔曲线生成。 详情和下载参见:https://github.com/liunianhuaguoyanxi/ZWMusicDownLoadView
1.用进度条做的首先要解决的是进度条的高度问题,可以通过仿射变换来扩大高度。 progressView.transform = CGAffineTransformMakeScale(1.0f,2.0f); 2.用进度条要设置进度progress要与按钮对应 通过步骤的索引来改变...