3

尝试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;

给出这个结果

一种

红框是图层的背景色

尝试 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;

给出这个结果

乙

红框是图层的背景色

那么有什么问题呢?

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

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

我怎样才能让相机从中间?

4

1 回答 1

-1

好吧,似乎更改锚点是最简单的。我只需要更改一些其他转换(未在帖子中透露)即可使其正常工作。

于 2012-12-16T10:26:48.273 回答