我一直在尝试对 UIView 执行透视变换。我一直在研究这个例子。
但是,该示例在视图上应用了旋转以及透视更改。有没有办法在不旋转的情况下改变视图的视角?可能看起来像这样的东西:
我一直在尝试删除旋转,但是当我这样做时,透视变换没有得到应用。我找不到任何只涉及改变视角的例子。提前致谢。
我一直在尝试对 UIView 执行透视变换。我一直在研究这个例子。
但是,该示例在视图上应用了旋转以及透视更改。有没有办法在不旋转的情况下改变视图的视角?可能看起来像这样的东西:
我一直在尝试删除旋转,但是当我这样做时,透视变换没有得到应用。我找不到任何只涉及改变视角的例子。提前致谢。
只是添加到大卫的答案:要获得图像中的输出,您必须围绕 x 轴(水平轴)旋转视图,以便视图矩形的上边缘看起来比下边缘“更远离”查看器边缘,例如
CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
rotationAndPerspectiveTransform.m34 = 1.0 / -200;
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, 45.0f * M_PI / 180.0f, 1.0f, 0.0f, 0.0f);
layer.transform = rotationAndPerspectiveTransform;
如果没有相对于您的视点进行任何旋转,透视图将不可见。即使您不旋转,仍然会应用透视图,但它不会很明显。
另一种显示透视的变换是沿 Z 平移,这使得视图看起来像是在缩放。