Jam*_*man 6 iphone cocoa-touch objective-c cgaffinetransform catransform3d
我一直在创建iPhone应用程序,使用基本的转换(旋转,缩放等),但现在我想做一些更复杂的事情.
数学真的不是我的最强点...但我想知道如何将"透视"添加到UIView(见下图).我在Photoshop中使用偏斜选项快速模拟了截图.
我已经了解了stackoverflow的解决方案,我发现如何将透视变换应用于UIView?它的效果很好 - 但它并不是我所追求的,因为最左边的高度比最右边的边缘大.
有谁知道我怎么可能去做这个CATransform3D但没有这些不同的高度?
alt text http://img594.imageshack.us/img594/4354/perspectivel.png
mvd*_*vds 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
}
Run Code Online (Sandbox Code Playgroud)
这是一个具有类似转换的项目的修改后的复制和粘贴,但您可能需要调整参数a和b.这将从左到右(0.1
/ 0.9
)上升1到9 ,同时从左到右冷凝到90%(0.9
).