title: Why does a CATransform3DMakeRotation not take (0,0,1) as rotating around the Z-axis?
body: <p>If I do a transform to an <code>NSView</code> in Cocoa's app:</p>
  
  <pre><code>self.view.layer.transform = CATransform3DMakeRotation(30 * M_PI / 180, 0, 0, 1);
  </code></pre>
  
  <p>I see the square not rotated around the Z-axis, but rotated as if that vector is pointing downward and outward.  I need to make it</p>
  
  <pre><code>self.view.layer.transform = CATransform3DMakeRotation(30 * M_PI / 180, 1, 1, 1);
  </code></pre>
  
  <p>to make it rotate around the Z-axis, as shown in the picture on <a href="https://stackoverflow.com/questions/12400273/how-to-make-nsview-not-clip-its-bounding-area">this question</a>.</p>
  
  <p>However, if I set an <code>NSTimer</code> and then update the <code>transform</code> in the <code>update</code> method, then using</p>
  
  <pre><code>-(void) update:(id) info {
      self.view.layer.transform = 
                    CATransform3DMakeRotation(self.degree * M_PI / 180, 0, 0, 1);
      self.degree += 10;
  }
  </code></pre>
  
  <p>(this time, using <code>(0, 0, 1)</code>) will work: it rotates around the Z-axis.  I wonder why <code>(1, 1, 1)</code> is needed inside of <code>applicationDidFinishLaunching</code> , but <code>(0, 0, 1)</code> can be used in the <code>update</code> method?</p>