初窥 CATransform3D  文档解读

来源:互联网 发布:剑三帅气成女捏脸数据 编辑:程序博客网 时间:2024/05/22 16:05

初窥 CATransform3D  文档解读

struct CATransform3D   {CGFloat m11, m12, m13, m14;CGFloat m21, m22, m23, m24;   CGFloat m31, m32, m33, m34;   CGFloat m41, m42, m43, m44;   };   

{
CGFloat m11(x缩放), m12(y切变), m13(), m14();
CGFloat m21(x切变), m22(y缩放), m23(), m24();
CGFloat m31(), m32(), m33(), m34(透视效果,要操作的这个对象要有旋转的角度,否则没有效果。当然,z方向上得有变化才会有透视效果);
CGFloat m41(x平移), m42(y平移), m43(z平移), m44();
};


typedef struct CATransform3D CATransform3D;CA_EXTERN_C_BEGIN 

CATransform3DIdentity

  • The identity transform: [1 0 0 0; 0 1 0 0; 0 0 1 0; 0 0 0 1].
    单位矩阵

    CA_EXTERN const CATransform3D CATransform3DIdentity__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0); 

CATransform3DIsIdentity

  • Returns true if ‘t’ is the identity transform.
    返回布尔值 判断是否是单位矩阵

    CA_EXTERN bool CATransform3DIsIdentity (CATransform3D t)__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);

CATransform3DEqualToTransform

  • Returns true if ‘a’ is exactly equal to ‘b’.
    返回布尔值 判断两个 CATransform3D 变量是否相等

    CA_EXTERN bool CATransform3DEqualToTransform (CATransform3D a, CATransform3D b)__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0); 

CATransform3DMakeTranslation

  • Returns a transform that translates by ‘(tx, ty, tz)’:
    t’ = [1 0 0 0; 0 1 0 0; 0 0 1 0; tx ty tz 1].
    传入 (x,y,z) 向量,转换成 CATransform3D 变量

    CA_EXTERN CATransform3D CATransform3DMakeTranslation (CGFloat tx,CGFloat ty, CGFloat tz)__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);

CATransform3DMakeScale

  • Returns a transform that scales by `(sx, sy, sz)’:
    ‘t’ = [sx 0 0 0; 0 sy 0 0; 0 0 sz 0; 0 0 0 1].
    对 X,Y,Z 三个变量进行缩放,传入参数其实是个比率

    CA_EXTERN CATransform3D CATransform3DMakeScale (CGFloat sx, CGFloat sy,CGFloat sz)__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0); 

CATransform3DMakeRotation

  • **Returns a transform that rotates by ‘angle’ radians about the vector
    ‘(x, y, z)’. If the vector has length zero the identity transform is
    returned.**
    在某个方向上旋转某个角度。返回一个 相对于某个矢量的旋转角度 的3D变换

    CA_EXTERN CATransform3D CATransform3DMakeRotation (CGFloat angle, CGFloat x,CGFloat y, CGFloat z)__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);

CATransform3DTranslate

  • **Translate ‘t’ by ‘(tx, ty, tz)’ and return the result:
    ‘t’ = translate(tx, ty, tz) * t.**
    在某个矢量基础上 进行另一个矢量运算。返回一个 相对于某个矢量的矢量运算的 的3D变换

    CA_EXTERN CATransform3D CATransform3DTranslate (CATransform3D t, CGFloat tx,CGFloat ty, CGFloat tz)__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);

CATransform3DScale

  • Scale ‘t’ by ‘(sx, sy, sz)’ and return the result:
    ‘t’ = scale(sx, sy, sz) * t.
    在某个矢量基础上 进行另一个矢量放缩。返回一个 相对于某个矢量的矢量放缩 的3D变换

    CA_EXTERN CATransform3D CATransform3DScale (CATransform3D t, CGFloat sx,CGFloat sy, CGFloat sz)__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);

CATransform3DRotate

  • **Rotate ‘t’ by ‘angle’ radians about the vector ‘(x, y, z)’ and return
    the result. If the vector has zero length the behavior is undefined:
    ‘t’ = rotation(angle, x, y, z) * t.**
    在某个矢量基础上 进行某个矢量方向上的旋转一定角度

    CA_EXTERN CATransform3D CATransform3DRotate (CATransform3D t, CGFloat angle,CGFloat x, CGFloat y, CGFloat z)__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);

CATransform3DConcat

  • Concatenate ‘b’ to ‘a’ and return the result: t’ = a * b.
    把两个向量变换 combine 到一起。相当于是 两个向量进行向量运算。

    CA_EXTERN CATransform3D CATransform3DConcat (CATransform3D a, CATransform3D b)__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);

CATransform3DInvert

  • **Invert ‘t’ and return the result. Returns the original matrix if ‘t’
    has no inverse.**
    返回一个逆向量

    CA_EXTERN CATransform3D CATransform3DInvert (CATransform3D t)__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);

CATransform3DMakeAffineTransform

  • Return a transform with the same effect as affine transform ‘m’.
    返回一个相同效果的向量 相当于 copy

    CA_EXTERN CATransform3D CATransform3DMakeAffineTransform (CGAffineTransform m)__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);

CATransform3DIsAffine

  • Returns true if ‘t’ can be represented exactly by an affine transform.
    判断放射变换是否可以被精确表示

    CA_EXTERN bool CATransform3DIsAffine (CATransform3D t)__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);

CATransform3DGetAffineTransform

  • **Returns the affine transform represented by ‘t’. If ‘t’ can not be
    represented exactly by an affine transform the returned value is
    undefined.**
    返回以“T”为代表的 放射变换。如果不能进行放射变换 则 返回 未定义。

    CA_EXTERN CGAffineTransform CATransform3DGetAffineTransform (CATransform3D t)__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
0 0
原创粉丝点击