If the current axes have been rotated away from the X-Y view, this function will calculate the angles of the current x, y and z axes with respect to horizontal. These angles are used to rotate the current x, y and z axes labels to align them with their respective directions.
This only works for equal sized axes (axis equal) and orthographic projection.
From the author: The labels should appear in the same place for the same view, but Matlab decides where that place is according to the current spacing.
I've looked into making this work without "axis equal" having been called (equal sized axes) and I'm stumped as to how to figure out the stretch of the plotted axes when they're not equal. Any help would be appreciated.
Useful. The only problem is that if you rotate and re-align a few times then it's possible for the labels to drift away from the centre of the axes. It would be nice if the label were re-centred as well as aligned.
17 May 2010
Added the conditions under which the function correctly works.
14 Jun 2011
Updated to allow Camera Roll to be used and still work out the angles correctly, i.e. allow a change in CameraUpVector axes property. The z axis label will now be rotated too, to align it with its axis direction if the camera has been rolled.
30 Jan 2012
Fixed typos in help and warning. Updated help with examples including its use as a callback after each rotate3d event.