2011-01-27 55 views
1

我一直在objective-c中工作一段時間,但我並沒有真正需要(直到現在)才能更深入地瞭解核心動畫和圖形操作。創建位於平面上的矩形的透視圖

我目前有四個UIImageViews,我想動畫到一個位置,使他們看起來像他們躺在平坦的表面。我的意思是說,它們將以矩形開始 - 屏幕上不失真和平坦,但會以傾斜的視角生動,看起來像是坐在平坦的表面上。

我相信CATransform3D是我需要做的,並閱讀了大量文檔,都指向使用.m34創建正確的視角。我似乎無法得到它的工作。下面是我使用的一段代碼,只是試圖讓圖像傾斜。當我使用下面的代碼時,只是試圖扭曲圖像,它似乎將其切斷,而不是顯示正確的視角。

CATransform3D transform = CATransform3DIdentity; 
transform.m34 = -1.0f/700.0f; 
// Perform other transforms 
transform = CATransform3DRotate(transform, 
    degreesToRadians(45.0f), 0.0f, 1.0f, 0.0f); 

[layer setTransform:transform]; 

我可以很好地處理動畫,但無法使最終圖像傾斜,使其看起來正確。任何人有任何建議或樣品如何實現這一目標?

回答

0

動畫看起來偏向我。嘗試使用m34因子來使其偏斜更多(將其設置爲較低的值,例如-1.0f/200.0f)。試驗一下,你最終會做對。如果您希望傾斜角度更大,您可以將其旋轉到45度以外的角度。

如果你的變換完全沒有歪斜,那麼也許你的其他變換之一是覆蓋變換(即你正在使用Make變換調用之一)。如果是這樣:嘗試移動transform.m34賦值是應用變換之前的最後一件事。