2013-03-10 91 views
1

我知道CATransform3D被定義爲CATransform3DTranslate如何翻譯?

struct CATransform3D 
{ 
CGFloat m11, m12, m13, m14; 

CGFloat m21, m22, m23, m24; 

CGFloat m31, m32, m33, m34; 

CGFloat m41, m42, m43, m44; 
}; 

和蘋果的文件說,

CATransform3DTranslate 
Translate 't' by '(tx, ty, tz)' and return the result: t' = translate(tx, ty, tz) * t. 

我想要實現我的CATransform3DTranslate的方法,但我不知道究竟如何計算的T ',即我有像self.layer.transform和tx = 10,ty = tz = 0的變換,如何計算得到t'?

+1

如果你真的想知道我可以推薦[我在這裏涉及所有數學的長篇文章](http://ronnqvi.st/the-math-behind-transforms/)。 – 2013-03-10 16:01:42

+0

打印結果並親自查看。 – 2013-03-10 18:20:12

回答

4

你不需要。 您只需在圖層上使用CATransform3dMakeTranslation方法,即可設置輸入值和遊戲!如CATransform3dMakeTranslation(如CATransform3DMakeRotation)將執行所有的數學運算並具有座標變換的旋轉平移矩陣。如果您只想在3D空間中翻譯/旋轉/旋轉圖層,則不必擔心矩陣本身。