Iphone CATTransformorM3D变换

Iphone CATTransformorM3D变换,iphone,ios,uiview,core-animation,transform,Iphone,Ios,Uiview,Core Animation,Transform,我正在尝试使用CATTransferM3D向视图添加透视图。目前,我得到的是: 这就是我想要的: 我很难做到这一点。我在这里完全迷路了。这是我的密码: CATransform3D t = CATransform3DIdentity; t.m11 = 0.8; t.m21 = 0.1; t.m31 = -0.1; t.m41 = 0.1; [[viewWindow layer] setTransform:t]; 矩阵元素。m34负责透视。文档中没有

我正在尝试使用CATTransferM3D向视图添加透视图。目前,我得到的是:

这就是我想要的:

我很难做到这一点。我在这里完全迷路了。这是我的密码:

CATransform3D t = CATransform3DIdentity;
    t.m11 = 0.8;
    t.m21 = 0.1; 
    t.m31 = -0.1; 
    t.m41 = 0.1;
    [[viewWindow layer] setTransform:t];

矩阵元素。m34负责透视。文档中没有太多讨论它,所以您只能玩弄它。这个答案讲述了如何使用它:

要真正看到矩阵的效果,需要做两件事: 1.将透视矩阵应用于父视图的子层变换 2.旋转子视图(您希望透视的子视图)-否则它将保持平面,您将无法判断它现在是否具有三维透视

数字是任意的,让它们看起来最好:

CATransform3D t = CATransform3DIdentity;
t.m34 = .005;
parentView.layer.sublayerTransform. = t;
childview.layer.transform = CATransform3DMakeRotation(45,1,0,0); 
根据子视图在父视图中的位置,透视图的外观会有所不同。如果子视图位于父视图的中心,则就像您在三维视图中直接看到子视图一样。离中心越远,就越像是从一个斜视的角度观看

这就是我使用上面的代码和居中的子视图得到的:(显然,我不允许发布图片,因为我是新的,所以你必须看到链接)


根据这些照片很难说出你想要什么;如果我的答案不是你想要的,多解释一点可能会有帮助。从图片中我可以看出,底部不是透视图

我能够轻松地通过使用实现正确的CATTransferM3D

#导入
UIView*视图=…;//创建一个视图
//将anchorPoint设置为零
view.layer.anchorPoint=CGPointZero;
view.layer.transform=CATTransformM3DMakeTransation(-view.layer.bounds.size.width*.5,-view.layer.bounds.size.height*.5,0);
//设置梯形变换
AGKQuad=view.layer.quadrasive;
quad.tl.x-=10;//将左上角的x值移动10个像素
view.layer.quadrilateral=四边形;//四元组转换为CATTransferM3D并应用

你的意思是
CATTransferrom3DMakeRotation(45/180*2*3.1416,1,0,0)
?第一个参数的值应为弧度.Nope。正如我所说,这些数字是任意的,你想怎么做就怎么做。
#import <AGGeometryKit/AGGeometryKit.h>

UIView *view = ...; // create a view

// setting anchorPoint to zero
view.layer.anchorPoint = CGPointZero;
view.layer.transform = CATransform3DMakeTranslation(-view.layer.bounds.size.width * .5, -view.layer.bounds.size.height * .5, 0);

// setting a trapezoid transform
AGKQuad quad = view.layer.quadrilateral;
quad.tl.x -= 10; // shift top left x-value with 10 pixels
view.layer.quadrilateral = quad; // the quad is converted to CATransform3D and applied