Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Uiview 理解CATTransform3D_Uiview_Catransform3d_Quartz Core - Fatal编程技术网

Uiview 理解CATTransform3D

Uiview 理解CATTransform3D,uiview,catransform3d,quartz-core,Uiview,Catransform3d,Quartz Core,我在UIView中玩CATTransferorM3dMakeRotation,我试图做一个45º的变换,就像它向后放置一样: 这是我的“代码”,但显然不行 CATransform3D _tr = CATransform3DMakeRotation(3.14/4, 1, 0, 0); view.layer.transform = _tr; 请帮我理解这些参数。 谢谢。基本上,您的代码是正确的,但要获得透视效果,您需要将superview层的子层转换设置为如下内容: CATransform3D

我在UIView中玩CATTransferorM3dMakeRotation,我试图做一个45º的变换,就像它向后放置一样:

这是我的“代码”,但显然不行

CATransform3D _tr = CATransform3DMakeRotation(3.14/4, 1, 0, 0);
view.layer.transform = _tr;
请帮我理解这些参数。
谢谢。

基本上,您的代码是正确的,但要获得透视效果,您需要将superview层的
子层转换设置为如下内容:

CATransform3D perspectiveTransform = CATransform3DIdentity;
perspectiveTransform.m34 = 1.0 / -850;
myView.layer.sublayerTransform = perspectiveTransform;

您可以针对不同的失真量使用不同的值进行实验。

您能解释一下您在那里做什么吗?。我想学习,不仅仅是复制粘贴和调整值。对于子孙后代,苹果解释了.m34和850在这里的含义:只是一个参考值,但可以使用
M_PI
代替3.14常量。和
M_PI_4
而不是3.14/4