CATransform3DTranslate如何翻译?

问题描述:

我知道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

你不需要。 您只需在图层上使用CATransform3dMakeTranslation方法,即可设置输入值和游戏!如CATransform3dMakeTranslation(如CATransform3DMakeRotation)将执行所有的数学运算并具有坐标变换的旋转平移矩阵。如果您只想在3D空间中翻译/旋转/旋转图层,则不必担心矩阵本身。