faceWithTransform:ct]]; //add cube face 2 ct = CATransform3DMakeTranslation(50, 0, 0); ct = CATransform3DRotate faceWithTransform:ct]]; //add cube face 3 ct = CATransform3DMakeTranslation(0, -50, 0); ct = CATransform3DRotate faceWithTransform:ct]]; //add cube face 4 ct = CATransform3DMakeTranslation(0, 50, 0); ct = CATransform3DRotate faceWithTransform:ct]]; //add cube face 5 ct = CATransform3DMakeTranslation(-50, 0, 0); ct = CATransform3DRotate faceWithTransform:ct]]; //add cube face 6 ct = CATransform3DMakeTranslation(0, 0, -50); ct = CATransform3DRotate
CATransform3DIdentity; //m34决定远近缩放 transForm.m34 = - 1.0 / 500.0; //旋转M_PI_4 transForm = CATransform3DRotate (perspective, -M_PI_4, 1, 0, 0); //Y轴旋转M_PI_4 perspective = CATransform3DRotate(perspective, :1]; //add cube face 3 transform = CATransform3DMakeTranslation(0, -50, 0); transform = CATransform3DRotate :3]; //add cube face 5 transform = CATransform3DMakeTranslation(-50, 0, 0); transform = CATransform3DRotate :4]; //add cube face 6 transform = CATransform3DMakeTranslation(0, 0, -50); transform = CATransform3DRotate
CGFloat angle, CGFloat x, CGFloat y, CGFloat z); //在一个transform3D的基础上进行旋转变换,其他参数如上 CATransform3D CATransform3DRotate 的值可以增加透视效果,也可以理解为景深效果 CATransform3D trans = CATransform3DIdentity; trans.m34 = -1/100.0; trans = CATransform3DRotate 使用CATransform3DTranslate 与 CATransform3DRotate搭好6张图片的空间架子。 UIImageView alloc] initWithImage:[UIImage imageNamed:@"dice2"]]; dice2.frame = dice1.bounds; diceTransform = CATransform3DRotate CATransform3D transform =CATransform3DIdentity; transform.m34 = -1 / 500; transform = CATransform3DRotate
indexPath.row-angleOffsetx-1)/itemCounts*M_PI*2; //这里我们进行四个方向的排列 if (indexPath.row%4==1) { trans3D = CATransform3DRotate (trans3D, angle1, 1.0,0, 0); }else if(indexPath.row%4==2){ trans3D = CATransform3DRotate( trans3D, angle2, 0, 1, 0); }else if(indexPath.row%4==3){ trans3D = CATransform3DRotate(trans3D , angle1, 0.5,0.5, 0); }else{ trans3D = CATransform3DRotate(trans3D, angle1, 0.5,-0.5,0);
与之相对的就是下面的api CATransform3DTranslate CATransform3DScale CATransform3DRotate 与之前三个api的不同点在于,这三个api都多了一个参数 ; CATransform3D transA = CATransform3DIdentity; transA.m34 = - 1.0 / 500; transA = CATransform3DRotate faceWithTransform:ct]]; //add cube face 2 ct = CATransform3DMakeTranslation(50, 0, 0); ct = CATransform3DRotate faceWithTransform:ct]]; //add cube face 3 ct = CATransform3DMakeTranslation(0, -50, 0); ct = CATransform3DRotate faceWithTransform:ct]]; //add cube face 4 ct = CATransform3DMakeTranslation(0, 50, 0); ct = CATransform3DRotate
CATransform3DMakeRotation (CGFloat angle, CGFloat x, CGFloat y, CGFloat z); //在一个transform3D的基础上进行旋转变换,其他参数如上 CATransform3D CATransform3DRotate newImageView]; CATransform3D trans = CATransform3DIdentity; trans.m34 = -1/100.0; trans = CATransform3DRotate
CABasicAnimation animationWithKeyPath:@"transform"]; basicAnima.fromValue = [NSValue valueWithCATransform3D:CATransform3DRotate (CATransform3DIdentity, 0, 0, 1.0, 0)]; basicAnima.toValue = [NSValue valueWithCATransform3D:CATransform3DRotate
向里偏500个单位 transA.m34 = - 1.0 / 500; //设置沿x轴偏转60度 transA = CATransform3DRotate
perspective transform.m34 = - 1.0 / 500.0; //rotate by 45 degrees along the Y axis transform = CATransform3DRotate 添加如下几行去旋转containerView图层的perspective变换矩阵: perspective = CATransform3DRotate(perspective, -M_PI_4, 1, 0, 0); perspective = CATransform3DRotate(perspective, -M_PI_4, 0, 1, 0); 这就对相机(或者相对相机的整个场景,你也可以这么认为 (perspective, -M_PI_4, 1, 0, 0); perspective = CATransform3DRotate(perspective, -M_PI_4, 0, 1, 0) (c2t, -M_PI_4, 1, 0, 0); c2t = CATransform3DRotate(c2t, -M_PI_4, 0, 1, 0); CALayer *cube2 = [
startTransform = CATransform3DIdentity startTransform.m34 = 1.0 / -20 // 透视 startTransform = CATransform3DRotate
sender{ 198 [UIView animateWithDuration:1 animations:^{ 199 self.imgView.layer.transform = CATransform3DRotate { 204 [UIView animateWithDuration:1.0 animations:^{ 205 self.imgView.layer.transform = CATransform3DRotate sender{ 210 [UIView animateWithDuration:1.0 animations:^{ 211 self.imgView.layer.transform = CATransform3DRotate
CATransform3DMakeRotation (CGFloat angle, CGFloat x, CGFloat y, CGFloat z); self.blueLayer.transform = CATransform3DRotate
transform = CATransform3DIdentity; transform.m34 = -1.0 / 800; // 旋转加透视 transform = CATransform3DRotate
这个方法返回一个新的CATransform3D对象,在原来的基础上进行旋转效果的追加 //第一个参数为旋转的弧度,后三个分别对应x,y,z轴,我们需要以x轴进行旋转 trans3D = CATransform3DRotate
CATransform3DIdentity; transform3d.m34 = -1/max(size.width, size.height) transform3d = CATransform3DRotate