尝试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”中,我能够正确渲染它,但随后出现另一个错误:内容现在超出范围(红色矩形是范围)。
我怎样才能让相机从中间?