CATransform3DTranslate如何翻译?

时间:2013-03-10 14:37:51

标签: ios objective-c core-animation

我知道CATransform3D被定义为

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

CGFloat m21, m22, m23, m24;

CGFloat m31, m32, m33, m34;

CGFloat m41, m42, m43, m44;
};

并且Apple文档说明了

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 个答案:

答案 0 :(得分:4)

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