我知道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'?
答案 0 :(得分:4)
你不必。 你只需在图层上使用CATransform3dMakeTranslation方法,就可以设置输入值和游戏! CATransform3dMakeTranslation(如CATransform3DMakeRotation)将完成具有坐标变化的旋转变换矩阵的所有数学运算。如果您只想翻译/旋转/旋转翻译3d空间中的图层,则无需担心矩阵本身。