以前我们说的变换全都是基于2D的变换,这一节,来说下3D的变换,也就是我们常说的三维立体。
这里引入一个属性zPosition,它可以控制让图层靠近或者原理摄像机,transform中的CATransform3D可以做到这一点,和2D的变换类似,3D的变换也是一个矩阵,不过它是一个4X4的矩阵:
这里的道理和2D变换一样,就不重复说明了,忘记的可以去看上一节说的。
不同于2D的旋转,3D的旋转多了z参数,旋转除了角度之外还多了x,y,z三个参数,这三个参数类似BOOL变量,1为正方向,0为反方向,他们分别决定每个坐标方向上的旋转:
CATransform3DMakeRotation(CGFloat angle, CGFloat x, CGFloat y, CGFloat z) CATransform3DMakeScale(CGFloat sx, CGFloat sy, CGFloat sz) CATransform3DMakeTranslation(Gloat tx, CGFloat ty, CGFloat tz)
但要注意的是,虽然这样做了旋转,但实际上也许只是看到图片变窄了,旋转了,这是正确的,因为我们只是在2D环境中观察的。如果要看出不同,需要做3D的图形来进行操作,后面的章节中会提到。