may*_*uur 20 calayer catransform3d caanimation ios
请仔细阅读图片.

所以这是我从一些在线资源获得的代码,它确实改变了我的对象.除此之外,我什么都不懂.我是CATransform3D的新手,想知道它是如何工作的.
CATransform3D transform = CATransform3DIdentity;
transform.m34 = 1.0 / -500;
transform = CATransform3DRotate(transform, 45.0f * M_PI / 180.0f, 0, 1, 0.0f);
_bgView.layer.transform = transform;
Run Code Online (Sandbox Code Playgroud)
我想知道这段代码是如何运行的?为什么我们在m34中设置了一些值?我发现它的某种矩阵甚至让我更加困惑.另外,CATransform3DRotate中的参数是什么 意思?
我想了解但没有进一步.
我想深入了解CATransform3D.请帮助处理任何文章,文档或解释自己.
非常感谢.
Fog*_*ter 33
我不确定什么m34是没有看.
2D旋转很容易,因为它只需要一个旋转的角度.然后围绕Z轴(即直接指向屏幕的轴)完成旋转.
3D旋转是不同的.它需要一个角度,但它需要知道你在哪个轴(或多个轴)旋转.
在CATransform3DRotate你给它五个参数......
角度(以弧度表示)π弧度= 180度3,4和5是应用于每个轴的角度旋转的多少.
X轴 - 这是从屏幕左侧到屏幕右侧的轴.
您在示例中应用的旋转如下...
角度= 45度(转换为弧度).X = 0 Y = 1 Z = 0
这意味着所有45度都将围绕Y轴旋转.也就是说,它会像一个旋转门一样绕着它的中间线旋转.
如果你有了参数......最后的"1,0,0"那么它会像桨船桨一样旋转."离你而去."
最后,如果你有"0,0,1",它会像屏幕上的凯瑟琳轮一样旋转.
您还可以组合这些值,即使用"0,1,1"来应用围绕两个轴的旋转.
矩阵的w行是透视投影.您是否曾在学校进行透视绘图,在那里放置一个圆点并从圆点绘制线条,然后画出适合这些线条的东西来给它透视?那么m34值决定了点的放置位置,因此提供了透视图.将它设置为类似-50的东西,你会看到更大的差异.
设置m34与该点的Z轴值有关.所以这一点放在(0,0,-1/500)
这是我在 Swift 中的项目https://github.com/paulz/PerspectiveTransform,它有助于计算 CATransform3D 并包括示例应用程序和操场。
它可用于动画 CALayer 变换属性。
有关构造矩阵和其他可能解决方案的详细信息,请参阅 wiki:https : //github.com/paulz/PerspectiveTransform/wiki。
感谢您提出这个问题,它帮助我开始了我的项目,因为我知道不仅我有这个问题!
| 归档时间: |
|
| 查看次数: |
12950 次 |
| 最近记录: |