Euler's rotation theorem states that any rigid motion that leaves the origin fixed is a rotation about an axis through the origin. Given the images , , of the three unit vectors , , (in which case constitutes a rotation matrix), there are various methods to determine the so-called Euler rotation axis and angle. This Demonstration illustrates a geometric method.

Contributed by: Tom Verhoeff (Eindhoven University of Technology)

Use the sliders "" (longitude), "" (latitude) and "" (roll) to set the orientation of the orthonormal system , which represents a rigid motion of the initial orthonormal system . The "sphere" and "sectors" buttons may help you see how this works. Given , and , the goal is to determine the axis and angle of the rotation that transforms to .

The rotation maps to , and hence the rotation axis lies in the bisector plane of the angle , since that axis must make equal angles with and . Similarly, the rotation axis lies in the bisector planes of angles and .

The first step is to construct the "displacements" , , . These displacement vectors are the normals of the "bisector planes" of the angles , and . If two vectors and are aligned, then their bisector plane is not uniquely determined (it fills space). These bisector planes intersect in a single line, which is the rotation axis. Its direction can be found as the cross product of a pair of displacement vectors. This results in (a maximum of) three candidate axes. Quantitatively, it is best to take the longest candidate as the axis. The "projections" of the three vector pairs on the plane perpendicular to the axis give (a maximum of) three candidates for the rotation "angle". Again, taking the longest pair is best (a projection could have length zero, in which case it cannot be used to determine the angle). The "info" box shows the numeric values for axis and angle.

You can examine some unlabeled entities with tooltips. You can disable various elements. Control the opacity of the planes with the "plane opacity" slider.