6

しばらくの間、基本的な変換 (回転、スケールなど) を使用して iPhone アプリを作成してきましたが、もう少し複雑なことをしたいと考えています。

数学は私の得意分野ではありませんが、UIView に「パースペクティブ」を追加するにはどうすればよいか考えていました (下の画像を参照)。Photoshop の傾斜オプションを使用して、スクリーンショットをすばやくモックアップしました

これに対する解決策については、stackoverflow を調べてみました。これはうまく機能しますが、左端の高さが右端よりも大きいため、実際には私が求めているものではありません

この 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 を調整する必要がある場合があります。これにより、左から右へは 9 分の 1 上昇し ( 0.1/ 0.9)、左から右へは 90% に凝縮します ( 0.9)。

于 2010-07-18T15:19:43.123 に答える