0

我有一个由函数产生的 UIImage。类似于以下内容。

image1.image = [self reflectedImage:img];

其中 image1 是一个 UIImage 控件。在将其插入 image1 之前,我想进一步将其向右或向左稍微扭曲成平行四边形,如下所示。所以我只想重新定位点c和d。

在此处输入图像描述

我在这里和那里阅读了几十篇文章。我不确定我是否可以使用CGAffineTransformMake来做到这一点。 这个网页表明我可以。不幸的是,没有示例项目可以查看它是如何工作的。不幸的是,我还没有找到一个网站告诉我如何将简单的矩形图像扭曲成平行四边形。那么最简单的方法是什么?我是否需要创建一个图层才能使用CATransform3D

谢谢您的帮助。

4

2 回答 2

2

我发现了一种替代方法,它比本主题中的其他方法更简单。只需将此转换应用于您的视图:

imgView.transform = CGAffineTransformMake(1.0, 0.0, proportion, 1.0, 0.0, 0.0);

其中比例介于 -1 和 1 之间

这称为剪切变换,请查看下面的链接了解更多信息

http://iphonedevelopment.blogspot.it/2008/10/cgaffinetransform-11-little-more.html

于 2013-06-26T14:10:43.123 回答
0

你要做的就是给你UIImageView一些观点。默认情况下,图层变换没有透视,因此您还必须设置:transform.m34 = 1.0 / -2000;

还要更改视图的锚点,使其沿视图的顶部边缘旋转。对你来说,它变成了(0,0.5).

在此处输入图像描述

透视图赋予它平行四边形的外观,就好像视图具有深度(它也称为 2.5D,因为它不是纯 3D 动画,它是伪 3D)。设置锚点,使其沿该边缘旋转,最后给它一个角度。即旋转多少?

// Rotate by 30 degrees
CGAffineTransform rotationTransform = CGAffineTransformIdentity;
rotationTransform = CGAffineTransformRotate(rotationTransform, DegreesToRadians(30));
swingView.transform = rotationTransform;

这一切都会给你你想要的……

于 2013-02-13T01:59:27.760 回答