初窥 CATransform3D 文档解读
来源:互联网 发布:魅族网络打印 编辑:程序博客网 时间:2024/06/06 08:42
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();
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
CA_EXTERN_C_BEGIN
/* 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);
/* Returns true if 't' is the identity transform.
返回布尔值 判断是否是单位矩阵
*/
CA_EXTERN bool CATransform3DIsIdentity (CATransform3D t)
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
CA_EXTERN bool CATransform3DIsIdentity (CATransform3D t)
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
/* 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);
/* 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);
/* 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);
/* 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);
/* 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);
/* 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);
/* 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);
/* 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);
/* 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);
/* 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);
/* 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);
/* 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
- 初窥 CATransform3D 文档解读
- 初窥 CATransform3D 文档解读
- 初窥 CGAffineTransform 文档解读
- 初窥 CGAffineTransform 文档解读
- CATransform3D
- CATransform3D
- CATransform3D
- CATransform3D
- CATransform3D
- 蓝牙官方文档解读
- monolog文档解读
- XML文档解读
- redux文档解读
- vuex官方文档解读
- XML文档 标签解读
- [iOS]CATransform3D
- CATransform3D-Cube
- CATransform3D解释
- PerconaXtrabackup 压缩备份集
- iptables学习
- SpringIOC--初始化源码解析
- HDOJ 2066 一个人的旅行(最短路)
- 求两个二进制数的最大公约数
- 初窥 CATransform3D 文档解读
- 计算机网络问题总结
- itoo在线编辑学习——nignx
- POJ 3687 Labeling Balls
- 前台网页规划
- Win8.1 远程桌面多用户登录方法
- Android 6.0 changes 上
- 判断一个变量是否属于数组类型
- FZU 2219 StarCraft (贪心 优先队列)