CATransform3D汇总(IOS)

了解CATransform3D,请看这里 ##关键词 CATransform3D 旋转 缩放 平移 动画 矩阵 绘制 图层 转换 形变 本文所有示例代码或Demo可以在此获取:https://github.com/WillieWangWei/SampleCode_CATransform3D 如果本文对你有所帮助,请给个Star???? ##概述 CATransform3D是QuartzCore下声明的一个结构体,文档对它的描述: T... 阅读详情

函数使用:

CATransform3D CATransform3DMakeTranslation (CGFloat tx, CGFloat ty, CGFloat tz)

tx:X轴偏移位置,往下为正数。

ty:Y轴偏移位置,往右为正数。

tz:Z轴偏移位置,往外为正数。

例:
如果有2个图层,一个是绿色的,一个是红色的。先加载绿色,后加载红色。

tx,ty的左右偏移先不说了。

如果绿色的tz为-10 ,红色的tz为 0 效果如下。


如果绿色的tz为 0 ,红色的tz为-10 效果如下。

对于tz来说,值越大,那么图层就越往外(接近屏幕),值越小,图层越往里(屏幕里)。


CATransform3D CATransform3DTranslate (CATransform3D t, CGFloat tx, CGFloat ty, CGFloat tz);

t:就是上一个函数。其他的都一样。

就可以理解为:函数的叠加,效果的叠加。



CATransform3D CATransform3DMakeScale (CGFloat sx, CGFloat sy, CGFloat sz);

sx:X轴缩放,代表一个缩放比例,一般都是 0 --- 1 之间的数字。

sy:Y轴缩放。

sz:整体比例变换时,也就是m11(sx)== m22(sy)时,若m33(sz)>1,图形整体缩小,若0<1,图形整体放大,若m33(sz)<0,发生关于原点的对称等比变换。


当sx = 1,sy = 1时。如图:

当sx = 0.5,sy = 0.5时。如图:



CATransform3D CATransform3DScale (CATransform3D t, CGFloat sx, CGFloat sy, CGFloat sz)

 

t:就是上一个函数。其他的都一样。

就可以理解为:函数的叠加,效果的叠加。



CATransform3D CATransform3DMakeRotation (CGFloat angle, CGFloat x, CGFloat y, CGFloat z);


旋转效果。

angle:旋转的弧度,所以要把角度转换成弧度:角度 * M_PI / 180。

x:向X轴方向旋转。值范围-1 --- 1之间

y:向Y轴方向旋转。值范围-1 --- 1之间

z:向Z轴方向旋转。值范围-1 --- 1之间


例:向X轴旋转60度。           向Y轴旋转60度。                 向Z轴旋转60度。

                       

向 X轴,Y轴都旋转60度,就是沿着对角线旋转。


可以通过X,Y,Z轴同时变化,来旋转图像。


CATransform3D CATransform3DRotate (CATransform3D t, CGFloat angle, CGFloat x, CGFloat y, CGFloat z);

 

t:就是上一个函数。其他的都一样。

就可以理解为:函数的叠加,效果的叠加。



CATransform3D CATransform3DInvert (CATransform3D t);

翻转效果。

               未使用                           使用

  


CGAffineTransform CATransform3DGetAffineTransform (CATransform3D t);

bool CATransform3DIsAffine (CATransform3D t);

仿射效果。


就是把一个 CATransform3D 对象转换成一个 CGAffineTransform 对象。

也就是把 CATransform3D 矩阵 转换成 CGAffineTransform 矩阵


 

变换函数同时提供了可以比较一个变换矩阵是否是单位矩阵,或者两个矩阵是否相等。

bool CATransform3DIsIdentity (CATransform3D t);

bool CATransform3DEqualToTransform (CATransform3D a, CATransform3D b);



也可以通过修改数据结构和键值来设置变换效果。

 

struct CATransform3D
               {

                 CGFloat m11, m12, m13, m14;

                           CGFloat m21, m22, m23, m24;

                           CGFloat m31, m32, m33, m34;

                                  CGFloat m41, m42, m43, m44;
}
可以直接修改 其中的一个值,来达到相同的效果。
或者修改键值
[myLayer setValue:[NSNumber numberWithInt:0] forKeyPath:@"transform.rotation.x"];



CATransform3D和CGAffineTransform之详细解说测试 1、本片博客重点在于两个类的解说,使用解说的不多。         3D 效果的基本类 CGAffineTransform ,还有他的兄弟CGAffineTransform类。这里对改两个类的方法等做了详细的测试和实验。 2、呼朋唤友 群的特点:   1、iOS 开发交流群,每周都有更新新的内容。   2、群里有3~5年的资深开发者。   3、群员在App开发过程中遇到什么问题,可 阅读详情

相关推荐

机器学习入门基础 | 基于python的高光谱图像特征挖掘:PCA + 形态学属性处理可视化实战

本文介绍了一种基于PCA和形态学操作的高光谱图像特征提取方法。通过主成分分析降低数据维度,再运用面积开闭操作增强空间结构特征,有效去除噪声并填补孔洞。实验采用WHU-HI-HanChuan数据集,提供完整的Python实现代码,包括数据加载、PCA降维、形态学处理及结果可视化等步骤。该方法能够显著改善图像质量,为后续分类和变化检测任务提供更好的特征输入。实验结果表明,不同阈值的形态学处理能呈现不同程度的空间结构增强效果,对区域生长、分割和聚类等应用具有重要价值。

lestatlu的博客 1046

CATransform3D

CATransform3D 的数据结构定义了一个同质的三维变换(4x4 CGFloat值的矩阵),用于图层的旋转,缩放,偏移,歪斜和应用的透视。 图层的2个属性指定了变换矩阵:transform 和 sublayerTransform。 transform : 是结合 anchorPoint(锚点)的位置来对图层和图层上的子图层进行变化。 sublayerTransform:是结合anc...

不积跬步 无以至千里 不积小流 无以成江海 334

Windows下Python安装geopandas全攻略:解决GDAL依赖问题的5个关键步骤

本文详细解析了在Windows系统下安装Python地理空间分析库geopandas时,如何有效解决其核心依赖GDAL的编译难题。文章提供了五个关键步骤,包括理解依赖关系、获取预编译wheel文件、顺序安装及环境验证,旨在帮助用户绕过复杂的C++编译环境,顺利完成geopandas的安装部署。

weixin_28221501的博客 284

CATransform3D 特效详解

关于图层的几个坐标系。 对于ios来说,坐标系的(0,0)点在左上角,就是越往下,Y值越大。越往右,X值越大。 一个图层的frame,它是position,bounds,anchorPoint和transform属性的一部分。 设置一个新的frame将会相应的改变图层的position和bounds,但是frame本身并没有保存。 position:是一个CGP

DDF的专栏 1231

反激变压器设计学习笔记

反激变压器匝比感量设计

m0_55419117的博客 5262

增量式PID的P和I怎么理解(一)

增量式PID的P、I理解之推翻片 据我所知的资料里关于PID三个参数的理解是这样的:(我这里只说P和I,先不说D) P的作用:比例P可以加快系统调节速度,P过小调节时间变长,响应性不够,P越大响应性越高超调也越严重,过大的P会使系统振荡。 I的作用:消除静差,提高控制精度,I越大越滞后,过大会使系统振荡。 ...

fangchenglia的博客 1万+

核心动画(4)

换换函数: CATransform3D CATransform3DMakeTranslation (CGFloat tx, CGFloat ty, CGFloat tz) tx:X轴偏移位置,往下为正数。 ty:Y轴偏移位置,往右为正数。 tz:Z轴偏移位置,往外为正数。 例: 如果有2个图层,一个是绿色的,一个是红色的。先加载绿色,后加载红色。 tx,ty的左右偏移先不说了。 如...

囧囧有神 169

LLC型自驱动半桥谐振变换器:电压电流变化与自然换向解析

变换器的工作状态经历了多个阶段,从模态一的关断状态,到模态二和三的电流供电状态,每个阶段都得到了合理的设计和优化。的工作原理,尤其是在半个周期内的电压和电流变化。上图 展示了该变换器在工作时的电压和电流波形,它为我们揭示了变换器如何通过精确的电流和电压控制,优化性能并实现高效能转换。,并根据负载情况调整电流和电压的工作模式,能够极大提升变换器的效率,尤其是在零电压开通和自然换向的设计中,发挥着关键作用。这意味着,电流会随着时间周期的变化,呈现典型的振荡波形,从而达到良好的电流控制。是两个关键的电流变量。

weixin_43199439的博客 279

[iOS]学习笔记5(CATransform3D-Cube)

1. CATransform3D结构成员的意义。 struct CATransform3D { CGFloat m11(x缩放), m12(y切变), m13(旋转), m14(); CGFloat m21(x切变), m22(y缩放), m23(), m24(); CGFloat m31(旋转), m32(), m33(), m34(透视效果,要操作的这个对象要有旋转的角度,否则没...

weixin_30636089的博客 240

RML2018.01a数据集的读取与使用

基于深度学习的自动调制识别

QAQIknow的博客 1万+

uniapp:实现扫描二维码+自定义扫描框+扫一扫功能,支持扫码识别二维码、条形码(条码)、微信/支付宝等二维码功能,自定义扫码页面可添加按钮或文字展示布局(移动端H5网页/小程序/安卓苹果APP端)

UNI-APP实现扫描二维码,uniapp扫描条形码,uniapp实现扫一扫功能,扫码成功后跳转页面,uniApp扫描条码,uniApp-H5 使用摄像头扫码功能(扫一扫),实现手机扫描二维码并跳转全过程示例代码,用户扫码后自动跳转到链接,uniapp怎么调用扫一扫功能,uniapp实现扫一扫功能,uniapp请求相机使用权限,扫一扫权限申请,uniapp调用摄像头扫码,uniapp实现调用相机扫码,UniApp 实现扫描二维码,uniapp APP安卓苹果ios实现扫码扫一扫,Uniapp微信小程序扫描二

✅ 精选推荐文章 4708

CATransform3D中zPosition详解

在ios开发中,很多时候会用到3d的动画效果来增强界面的

kobe8815的专栏 1044

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

iOS形变之CATransform3D

CATransform3D是一个用于处理3D形变的类,其可以改变控件的平移、缩放、旋转、斜交等,其坐标系统采用的是三维坐标系,即向右为x轴正方向,向下为y轴正方向,垂直屏幕向外为z轴正方向

蚊香酱的专栏 3842

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

iOS CALayer仿射变换与3D变换(CGAffineTransform、 CATransform3D)

本篇文章将要研究一下有关图层旋转、放缩以及平移或倾斜所用的CGAffineTransform,还有可以将扁平物体转换成三维空间对象的CATransform3D。

郭永明的技术专栏 4432

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Core Animation之CATransform3D:矩阵变换3D旋转

关于图层的几个坐标系。 对于ios来说,坐标系的(0,0)点在左上角,就是越往下,Y值越大。越往右,X值越大。 一个图层的frame,它是position,bounds,anchorPoint和transform属性的一部分。 设置一个新的frame将会相应的改变图层的position和bounds,但是frame本身并没有保存。 position:是一个CGP

如鱼得水的专栏 1万+

Ios中CATransform3D的一点使用心得。

Ios的CATransform3D的一点注意事项。

yiyunhzy的专栏 2518

IOS7的转场动画和CATransform3D简单使用

说来惭愧自己惭愧,由于自己开启了懒汉模式,一直没怎么研究过IOS7新的转场的动画,今天死磕的一天终于有点成效,还简单弄了下CATransform3D的内容 先看图 现在好多APP喜欢这样玩转场动画。。。于是就简单研究了一下 ,适合初学者,没有过多介绍深层的东西 说白了这就是执行了present的跳转代码 SecViewController *sec = [[SecViewC

Minos'blog 1673

iCarousel核心原理剖析:如何用CATransform3D实现3D旋转效果

iCarousel是一个简单、高度可定制的数据驱动3D旋转木马库,专为iOS和Mac OS设计。它通过CATransform3D变换实现了多种炫酷的3D效果,让开发者能够轻松创建出令人印象深刻的轮播界面。本文将深入探讨iCarousel如何利用CATransform3D实现各种3D旋转效果,帮助你理解其核心实现原理。 ## 🔍 iCarousel的核心架构 iCarousel基于UIKit框

gitblog_01172的博客 904

AGGeometryKit核心功能详解:从Quadrilaterals到CATransform3D的实战应用

AGGeometryKit是一款专注于iOS几何变换的开发工具库,提供了从Quadrilaterals(四边形)操作到CATransform3D变换的完整解决方案,帮助开发者轻松实现复杂的UI几何效果。无论是图片透视变换、图层形状调整还是动画过渡效果,AGGeometryKit都能提供高效可靠的API支持。 ## 为什么选择AGGeometryKit? 在iOS开发中,实现复杂的几何变换往往需

gitblog_00386的博客 795

CATransform3D详解

关于图层的几个坐标系。 对于ios来说,坐标系的(0,0)点在左上角,就是越往下,Y值越大。越往右,X值越大。 一个图层的frame,它是position,bounds,anchorPoint和transform属性的一部分。 设置一个新的frame将会相应的改变图层的position和bounds,但是frame本身并没有保存。 position:是一个CGP

Jet Huang 的专栏 836

LoginCritter动画原理:CATransform3D与UIViewPropertyAnimator对比分析

LoginCritter是一个响应文本字段交互的动画头像项目,它通过巧妙结合CATransform3D和UIViewPropertyAnimator两种核心技术,为iOS应用带来了生动有趣的登录体验。这个开源项目展示了如何在Swift中创建流畅的3D动画效果。 ## CATransform3D:3D变换的基石 CATransform3D是Core Animation框架中的核心类,专门处理3D

gitblog_00383的博客 975

CATransform3D动画实例

在项目中,经常要做动画效果,比如wo

Apple_0611的专栏 722
上一篇: 判断是否有权限访问相机,相册,定位
下一篇: Mac OS忘记密码怎么办?无光盘破解Mac OS的管理员密码
LIN1986LIN
博客等级 码龄19年 17粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值