gpt4 book ai didi

iphone - CATransform3D 变换

转载 作者:行者123 更新时间:2023-12-01 19:21:56 30 4
gpt4 key购买 nike

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

enter image description here

这就是我想要得到的:

enter image description here

我很难做到这一点。我完全迷失在这里。这是我的代码:

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

最佳答案

矩阵元素 .m34 负责透视。文档中没有太多讨论,所以你必须玩弄它。这个答案稍微谈谈如何使用它:https://stackoverflow.com/a/7596326/1228525

要实际查看该矩阵的效果,您需要做两件事:
1. 将该透视矩阵应用于父 View 的子层变换
2. 旋转 subview (您想要透视的那个) - 否则它将保持平坦,您将无法判断它现在具有 3D 透视图。

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

CATransform3D t = CATransform3DIdentity;
t.m34 = .005;
parentView.layer.sublayerTransform. = t;
childview.layer.transform = CATransform3DMakeRotation(45,1,0,0);

根据 subview 在父 View 中的位置,透视图看起来会有所不同。如果 child 位于 parent 的中心,就像您直接以 3D 方式查看 child View 一样。距离中心越远,您从掠过的角度观看的效果就越好。

这是我使用上面的代码并将 subview 居中得到的:(显然我是新手,所以不允许发布图片,所以你必须看到链接) http://i.stack.imgur.com/BiYCS.png

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

关于iphone - CATransform3D 变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9946895/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com