長方形のビュー [ ] を作成する必要があります [ ] 上が回転し、下が所定の位置に固定されているかのように表示されます: / \ 。結果の画像は等角図で、下部が上部よりも幅が広くなっています。
この目標を達成するには、どの CGAffineTransform が必要ですか?
長方形のビュー [ ] を作成する必要があります [ ] 上が回転し、下が所定の位置に固定されているかのように表示されます: / \ 。結果の画像は等角図で、下部が上部よりも幅が広くなっています。
この目標を達成するには、どの CGAffineTransform が必要ですか?
他の人が指摘しているように、CGAffineTransform でこれを行うことはできません。
ただし、この回答で説明しているように、CATransform3D を使用するのは比較的簡単です。CATransform3Dのコンポーネントを調整m34
して、変換にある程度の遠近感を与え、X 軸を中心にビューを回転させ、場合によってはスケーリングして、下端が元の回転していないビューと同じ幅のままになるようにする必要があります。
anchorPoint
または、ビューの下層を中央ではなく下部に調整することもできます。次に、その端から回転が適用されます。これにより、下端の長さが一定に保たれ、ビューの遠近感が遠ざかる効果が得られます。(0.5, 1.0) の値がanchorPoint
下端に設定されると思います。
ブラッド、透視変換を行う方法について、次の例を (あなたが作成しました!) 見つけました。
http://www.sunsetlakesoftware.com/2008/10/22/3-d-rotation-without-trackball
何らかの理由で、私のコードでは機能しません。ボタンに 3D 変換が適用されていますが、スケーリング効果は適用されていません。