ROTATION3DAXISANDANGLE Determine axis and angle of a 3D rotation matrix. [AXIS, ANGLE] = rotation3dAxisAndAngle(MAT) Where MAT is a 4-by-4 matrix representing a rotation, computes the rotation axis (containing the points that remain invariant under the rotation), and the rotation angle around that axis. AXIS has the format [DX DY DZ], constrained to unity, and ANGLE is the rotation angle in radians. Note: this method use eigen vector extraction. It would be more precise to use quaternions, see: http://www.mathworks.cn/matlabcentral/newsreader/view_thread/160945 Example origin = [1 2 3]; direction = [4 5 6]; line = [origin direction]; angle = pi/3; rot = createRotation3dLineAngle(line, angle); [axis angle2] = rotation3dAxisAndAngle(rot); angle2 angle2 = 1.0472 See also transforms3d, vectors3d, angles3d, eulerAnglesToRotation3d
Package: matgeom