0

関数の結果であるUIImageがあります。次のようなものです。

image1.image = [self reflectedImage:img];

ここで、image1はUIImageコントロールです。それをimage1に接続する前に、以下に示すように、平行四辺形にさらに右または左に歪ませたいと思います。したがって、ポイントcとdを再配置したいだけです。

ここに画像の説明を入力してください

私はあちこちで数十の記事を読みました。CGAffineTransformMakeでそれができるかどうかわかりません。 このウェブページは私ができることを示唆しています。残念ながら、それがどのように機能するかを確認するためのサンプルプロジェクトはありません。残念ながら、単純な長方形の画像を平行四辺形に変形する方法を示しているWebサイトは1つも見つかりませんでした。それで、それを行う最も簡単な方法は何ですか?CATransform3Dを使用できるように、レイヤーを作成する必要がありますか?

ご協力ありがとうございました。

4

2 に答える 2

2

このトピックでは、他の方法よりもはるかに簡単な別の方法を見つけました。この変換をビューに適用するだけです。

imgView.transform = CGAffineTransformMake(1.0, 0.0, proportion, 1.0, 0.0, 0.0);

ここで、比率は-1から1の間です。

これはせん断変換と呼ばれます。詳細については、以下のリンクを参照してください

http://iphonedevelopment.blogspot.it/2008/10/cgaffinetransform-11-little-more.html

于 2013-06-26T14:10:43.123 に答える
0

あなたがしなければならないことはあなたのUIImageViewいくつかの視点を与えることです。デフォルトでは、レイヤー変換には遠近法がないため、次の設定も行う必要があります。transform.m34 = 1.0 / -2000;

また、ビューのアンカーポイントを変更してビューの上端に沿って回転するようにします。あなたにとってそれはになり(0,0.5)ます。

ここに画像の説明を入力してください

パースペクティブにより、平行四辺形はビューに奥行きがあるように見えます(純粋な3Dアニメーションではなく、疑似3Dとして2.5Dとも呼ばれます)。アンカーポイントをそのエッジに沿って回転するように設定し、最後に角度を付けます。つまり、どれだけ回転しますか?

// Rotate by 30 degrees
CGAffineTransform rotationTransform = CGAffineTransformIdentity;
rotationTransform = CGAffineTransformRotate(rotationTransform, DegreesToRadians(30));
swingView.transform = rotationTransform;

このすべてがあなたが望むものをあなたに与えるでしょう...

于 2013-02-13T01:59:27.760 に答える