CATransform3D 使用
Posted pjfeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CATransform3D 使用相关的知识,希望对你有一定的参考价值。
struct CATransform3D
{
CGFloat m11(x轴缩放), m12(y轴切变), m13, m14(x轴拉伸);
CGFloat m21(x轴切变), m22(y轴缩编), m23, m24(向y轴拉伸);
CGFloat m31, m32, m33, m34;
CGFloat m41(x轴平移), m42(y轴平移), m43(z轴平移), m44(放大);
};
举例:
对照图
UIImageView *img = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
img.image = [UIImage imageNamed:@"11"];
[self.view addSubview:img];
修改图
UIImageView *caimg = [[UIImageView alloc]initWithFrame:CGRectMake(100, 200, 100, 100)];
caimg.image = [UIImage imageNamed:@"11"];
[self.view addSubview:caimg];
1、平行移动
CATransform3DMakeTranslation(tx,ty,tz)
tx:x轴方向移动,右移为正数
ty:y轴方向移动,下移为正数
tz:z轴方向移动,外移为正数
CATransform3D translation = CATransform3DMakeTranslation(0.0, 80.0, 5.0);
caimg.layer.transform = translation;
2、缩放
CATransform3DMakeScale(CGFloat sx, CGFloat sy, CGFloat sz)
sx:x轴方向缩放,大于1放大。小于1缩小
sy:y轴方向缩放,大于1放大。小于1缩小
sz:z轴方向缩放,大于1放大。小于1缩小
CATransform3D scale = CATransform3DMakeScale(2, 2, 5);
caimg.layer.transform = scale;
3、旋转
CATransform3DMakeRotation (CGFloat angle, CGFloat x,CGFloat y, CGFloat z)
angle:旋转角度
x:围绕x轴旋转,取值范围-1~1
y:围绕y轴旋转,取值范围-1~1
z:围绕z轴旋转,取值范围-1~1
CATransform3D rotation = CATransform3DMakeRotation(M_PI/3, 1, 1, 1); caimg.layer.transform = rotation;
4、复合行
CATransform3DIsIdentity (CATransform3D t)
t:CATransform3D类型,可以附加
CATransform3DTranslate (CATransform3D t, CGFloat tx,
CGFloat ty, CGFloat tz)
CATransform3DScale (CATransform3D t, CGFloat sx,
CGFloat sy, CGFloat sz)
以上是关于CATransform3D 使用的主要内容,如果未能解决你的问题,请参考以下文章
层变换矩阵(CATransform3D 等)但带有 IBDesignable?