スプライトを台形に変換しようとしています。これがないと画像のディテールが失われることがわかっていても、補間についてはあまり気にしません。私が本当にやりたいのは、長方形のスプライトを次のような台形に変換することだけです。
/ \
/ \
/__________\
誰かがCGAffineTransformsまたはcocos2dでこれを行ったことがありますか?
スプライトを台形に変換しようとしています。これがないと画像のディテールが失われることがわかっていても、補間についてはあまり気にしません。私が本当にやりたいのは、長方形のスプライトを次のような台形に変換することだけです。
/ \
/ \
/__________\
誰かがCGAffineTransformsまたはcocos2dでこれを行ったことがありますか?
あなたが提案している変換はアフィンではありません。 アフィン変換は元に戻せる必要があります。そのため、通常は次のことができます。
しかし、彼らは「絞る」ことはできません。台形を延長すると、左右の辺が特定の場所で交差することに注意してください。それらはもはや平行ではありません。そのため、変換を「元に戻す」ことはできませんでした。その場所に変換するものがあった場合、どこに変換するかを決めることができなかったからです。つまり、変換が並列処理を保持しない場合、スペースが圧迫され、元に戻すことができず、アフィンではありません。
私はコア アニメーションの変換についてあまり知らないので、数学的なことが代替案を見つけるのに役立つことを願っています。
しかし、OpenGL でそれを行う方法は知っていますが、アプリケーションの描画方法を最初からやり直す必要があります。
必要な結果を正しく想定している場合は、長方形を 3D で作成し、アフィン変換を使用して少し回転させ、(非アフィン) 射影変換を使用して 2D 画像に平坦化します。
3D 効果を探しているのではなく、本当に角をつまんでおきたい場合はGL_RECT
、台形のポイントで を指定し、スプライトをテクスチャとしてマップすることができます。
最も簡単な方法は、フォト エディターで画像を事前に圧縮し、透明な .png として保存し、その画像で四角形を描くことです。