为什么CATransform3DMakeRotation不绕(0,0,1)绕Z轴旋转?

时间:2012-09-13 06:17:44

标签: macos cocoa appkit catransform3d

如果我在Cocoa的应用程序中转换为NSView

self.view.layer.transform = CATransform3DMakeRotation(30 * M_PI / 180, 0, 0, 1);

我看到方形没有围绕Z轴旋转,而是旋转,好像该向量指向下方和外方。我需要做到这一点

self.view.layer.transform = CATransform3DMakeRotation(30 * M_PI / 180, 1, 1, 1);

使其围绕Z轴旋转,如this question上的图片所示。

但是,如果我设置NSTimer然后更新transform方法中的update,那么使用

-(void) update:(id) info {
    self.view.layer.transform = 
                  CATransform3DMakeRotation(self.degree * M_PI / 180, 0, 0, 1);
    self.degree += 10;
}

(这次,使用(0, 0, 1))将起作用:它围绕Z轴旋转。我想知道为什么(1, 1, 1)内需要applicationDidFinishLaunching,但(0, 0, 1)方法可以使用update

0 个答案:

没有答案