我一直在创建iPhone应用程序一段时间,使用基本的转换(旋转,缩放等),但现在我想做一些更复杂的事情。
数学确实不是我最强的观点......但我想知道如何将“视角”添加到UIView中(参见下图)。我使用Photoshop .
中的偏斜选项快速模拟了截图我已经看过stackoverflow以获得解决方案,我发现How do I apply a perspective transform to a UIView?效果非常好 - 但它并不是我所追求的,因为最左边的高度比最右边的边缘大.
有没有人知道如何做这个CATransform3D但没有这些不同的高度?
alt text http://img594.imageshack.us/img594/4354/perspectivel.png
答案 0 :(得分: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
)提升1/9,同时从左到右缩小到90%(0.9
)。