1

我需要使一个矩形视图 [ ] 看起来好像它的顶部被旋转回来,而底部被固定到位: / \ 。生成的图像是等距的,底部比顶部宽。

我需要哪个 CGAffineTransform 来实现这个目标?

4

2 回答 2

2

正如其他人指出的那样,您不能使用 CGAffineTransform 来执行此操作。

但是,正如我在此答案中所描述的,使用 CATransform3D 相对容易。您需要调整m34CATransform3D 的组件以赋予变换某种程度的透视,围绕 X 轴旋转视图,并可能对其进行缩放,以使底边保持与原始未旋转视图相同的宽度。

或者,您可以将anchorPoint视图的底层调整为底部,而不是中心。然后将从该边缘应用旋转,这应保持底部边缘长度不变,并为您提供视图的后退透视效果。我相信 (0.5, 1.0) 的值会将 设置anchorPoint为下边缘。

于 2012-05-24T22:56:02.463 回答
0

布拉德,我找到了这个关于如何进行透视转换的示例(由您提供!):

http://www.sunsetlakesoftware.com/2008/10/22/3-d-rotation-without-trackball

由于某种原因,它在我的代码中不起作用。我的按钮应用了 3d 变换,但没有应用缩放效果。

于 2012-05-26T13:33:37.213 回答