6

我已经创建 iPhone 应用程序一段时间了,使用基本的转换(旋转、缩放等),但现在我想做一些更复杂的事情。

数学确实不是我的强项……但我想知道如何将“透视”添加到 UIView(见下图)。我使用 Photoshop 中的倾斜选项快速模拟了屏幕截图

我查看了stackoverflow的解决方案,我发现如何将透视变换应用于UIView?效果很好-但这并不是我真正想要的,因为最左边的边缘的高度大于最右边的边缘

有谁知道我如何去做这个 CATransform3D 但没有这些不同的高度?

替代文字 http://img594.imageshack.us/img594/4354/perspectivel.png

4

1 回答 1

11

如果您只想倾斜,则不需要 3D 变换。仿射变换就足够了。

-(void)drawRect:(CGRect)rect {
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGAffineTransform transform = CGAffineTransformIdentity;
    transform.b = -0.1;
    transform.a = 0.9;
    CGContextConcatCTM(ctx,transform);
    // do drawing on the context
}

这是从具有类似转换的项目中修改后的复制和粘贴,但您可能需要调整参数 a 和 b。这将使从左到右 ( 0.1/ 0.9) 上升 9 分之一,同时从左到右冷凝到 90% ( 0.9)。

于 2010-07-18T15:19:43.123 回答