6

我已經創建了一段時間的iPhone應用程序,使用基本的轉換(旋轉,縮放等),但現在我想做一些更復雜的事情。如何使用UIView上的CATransform3D添加特定類型的透視圖?

數學真的不是我最強烈的觀點......但我想知道如何去UIView添加'透視'(參見下圖)。我趕緊嘲笑的截圖了使用歪斜選擇在Photoshop .

我已經有大約計算器一看的這個解決方案,我發現How do I apply a perspective transform to a UIView?其工作出色 - 但它不是真正的我是什麼後,因爲左側的高度最邊緣大於最右邊緣.

有誰知道我該怎麼去做這個CATransform3D,但沒有這些不同的高度?

alt text http://img594.imageshack.us/img594/4354/perspectivel.png

回答

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。這會使得從左到右上升1比9(0.1/0.9),同時從左到右冷凝到90%(0.9)。

+0

非常好的答案,非常感謝! – 2010-07-18 16:20:06

相關問題