如何使用CATransform3DMakeRotation?

dan*_*pen 23 iphone core-animation

我无法弄清楚如何使用CATransform3DMakeRotation().有人可以告诉我如何使用它吗?

我认为第一个参数是角度,对吧?但是其他三个是什么?

Gu1*_*234 38

第一个是以弧度表示的角度,其他3个参数是轴(x,y,z).因此,例如,如果您想围绕z轴旋转180度,只需调用如下函数:

myView.layer.transform = CATransform3DMakeRotation(M_PI, 0.0, 0.0, 1.0);
Run Code Online (Sandbox Code Playgroud)

并将结果应用于要旋转的视图的transform属性.

  • @Dan - 不,轴并不总是1.0.X,Y和Z分量定义了一个围绕其发生旋转的轴.为组件设置1.0,将另一个设置为0.0,定义围绕X,Y或Z轴的旋转,但您可以围绕任意方向旋转.这使您可以以真正的三维方式操作视图和图层. (4认同)

Sco*_*man 5

使用弧度时,您可能会发现这些有用:

CGFloat DegreesToRadians(CGFloat degrees)
{
  return degrees * M_PI / 180;
};

CGFloat RadiansToDegrees(CGFloat radians)
{
  return radians * 180 / M_PI;
};
Run Code Online (Sandbox Code Playgroud)