gpt4 book ai didi

core-animation - CALayer sublayerTransform (CATransform3D) - 如何移动 "camera"?

转载 作者:行者123 更新时间:2023-12-02 15:04:32 25 4
gpt4 key购买 nike

尝试A

这段代码

CATransform3D perspectiveTransform = CATransform3DIdentity;
perspectiveTransform.m34 = -1.0 / 1000.0;
perspectiveTransform = CATransform3DRotate(perspectiveTransform, angle / 2.0, 0.0, 1.0, 0.0);
self.sublayerTransform = perspectiveTransform;

给出这个结果

A

红框为图层背景色

尝试B

这段代码

CATransform3D perspectiveTransform = CATransform3DIdentity;
perspectiveTransform.m34 = -1.0 / 1000.0;
// following line is added
perspectiveTransform = CATransform3DTranslate(perspectiveTransform, -width / 2.0, 0, 0);
perspectiveTransform = CATransform3DRotate(perspectiveTransform, angle / 2.0, 0.0, 1.0, 0.0);
self.sublayerTransform = perspectiveTransform;

给出这个结果

B

红框为图层背景色

那么出了什么问题?

在“尝试 A”的渲染示例中,从左侧中心看到,因此从错误的角度看到折叠(左侧折叠比右侧折叠稍薄)

通过在 x 轴上平移它,如“尝试 B”中所示,我能够正确渲染它,但随后出现另一个错误:内容现在超出范围(红色矩形是边界)。

如何让相机从中间拍摄?

最佳答案

嗯,看来改变 anchor 是最简单的。我只需要更改一些其他转换(未在帖子中透露)即可使其工作。

关于core-animation - CALayer sublayerTransform (CATransform3D) - 如何移动 "camera"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13894136/

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