Rotations edit page

A rotation moves a geometric object within a fixed reference frame. It preserves lengths, angles, and handedness. Such a motion is called a proper rotation.

A reference frame is the coordinate system in which data are expressed. Moving an object within one frame is an active rotation. A frame change instead re-expresses the same physical object in a different reference frame without moving it.

This chapter assumes the three-dimensional directions introduced in Defining Three-Dimensional Vectors. The angle and Euler conventions used throughout MTEX are collected in Notation and Conventions.

In MTEX, rot * v actively turns the direction v by rot. The same scalar rotation acts on a whole array of directions without a loop. Open circles below show the directions before the rotation, and red circles show them afterwards. The larger blue squares identify one pair.

plottingConvention.default('y↑→x');

% turn by 60 degrees about the z axis
rot = rotation.byAxisAngle(vector3d.Z,60*degree);

v = equispacedS2Grid('points',80,'upper');
% highlight one direction of the grid and its image
[~,iExample] = min(angle(v,vector3d(1,2,2)));
vExample = v(iExample);

plot(v,'upper','grid','MarkerFaceColor','none','MarkerEdgeColor','k')
hold on
plot(rot*v,'upper','MarkerFaceColor','r','MarkerSize',5)
plot(vExample,'upper','Marker','s','MarkerSize',10,...
  'MarkerFaceColor','none','MarkerEdgeColor','b')
plot(rot*vExample,'upper','Marker','s','MarkerSize',10,...
  'MarkerFaceColor','b','MarkerEdgeColor','b')
hold off

Reading the rotation

The two blue squares lie on the same latitude circle, as does every red point and its open starting point. The Z direction at the centre does not move because it is the rotation axis.

Every non-identity proper rotation in three dimensions has a fixed axis. The identity has angle zero and no unique axis. This axis--angle result is one description of the same rotation, not a different kind of motion.

Why rotations need their own geometry

Rotations do not add or compose like ordinary vectors. The product on the right acts first, and reversing two factors usually changes the result. Operations demonstrates both facts directly.

Coordinate-wise averaging is another trap. Averaging the entries of rotation matrices, Euler-angle triplets, or Rodrigues vectors does not in general give the geometric mean of the rotations. MTEX operations such as mean work with the geometry of rotation space.

One rotation, many descriptions

The same rotation can be written as three Euler angles, an axis and angle, a \(3 \times 3\) matrix, a unit quaternion, or a Rodrigues--Frank vector. The best description depends on whether the rotation will be entered, composed, sampled, or plotted. Definition introduces and compares these descriptions.

Euler angles are common in texture analysis and especially easy to misread. Three angle values are incomplete unless their axes, order, and active or passive interpretation are also known. A quaternion avoids Euler singularities, but \(q\) and \(-q\) describe the same rotation. Representations compares Rodrigues--Frank, homochoric, and cubochoric coordinates for rotation space.

Improper transformations and symmetry

Proper rotations form the rotation group SO(3). Reflections and inversion also preserve lengths and angles, but reverse handedness. They are improper transformations in the larger orthogonal group O(3).

MTEX stores proper and improper transformations in the rotation class because crystal point groups can contain both. Improper Rotations explains their representation and why not every symmetry operation can physically turn a crystal.

Follow the chapter

Start with Definition to construct and inspect rotations. Continue with Representations to compare coordinate systems. Then read Improper Rotations before Operations, which applies, composes, inverts, and compares rotations.

Plotting shows sets of rotations as points in Euler, axis--angle, and Rodrigues space. Fibres treats the curve of rotations that maps one fixed direction onto another. Such curves recur in pole figures and ideal texture components. Before reading Fibres, read Orientation Definition and Orientation Symmetry, which that page assumes.

Tangent Spaces describes small changes in a rotation. Spin Tensors connects those changes to rates of rotation in deforming materials.

Import and Export exchange orientation data with files.

How rotations connect to MTEX

An orientation maps coordinates from a crystal frame into a specimen frame. It also carries the relevant symmetries, so several rotation representatives can describe the same physical crystal placement. This is developed in Orientations.

A misorientation is the relative rotation between two crystals. It is introduced in Misorientations. A continuous density over crystal orientations is an orientation distribution function, or ODF, developed in ODF.

Orientation Functions provides the general machinery for functions on rotations. The worked Tutorials use rotations inside EBSD import corrections, orientation maps, grain-boundary comparisons, pole figures, and ODF calculations.

Further reading

Next

Continue with Defining Rotations. Crystal symmetry is introduced in Crystal Geometry before rotations become crystal orientations.

Citing this page. This page is part of the documentation of MTEX, a free and open source MATLAB toolbox for analyzing and modeling crystallographic textures. It was written by The MTEX Developers and is published at https://mtex-toolbox.github.io/Rotations.html. If you use MTEX, or reuse text or figures from this page, in your research, please cite

F. Bachmann, R. Hielscher, H. Schaeben: Texture Analysis with MTEX - Free and Open Source Software Toolbox, Solid State Phenomena 160 (2010), 63-68. 10.4028/www.scientific.net/SSP.160.63

BibTeX
@article{bachmann2010mtex,
  author  = {F. Bachmann and R. Hielscher and H. Schaeben},
  title   = {Texture Analysis with MTEX - Free and Open Source Software Toolbox},
  journal = {Solid State Phenomena},
  volume  = {160},
  pages   = {63-68},
  year    = {2010},
  doi     = {10.4028/www.scientific.net/SSP.160.63},
  url     = {https://doi.org/10.4028/www.scientific.net/SSP.160.63}
}

Other papers describing specific MTEX methods are listed under Publications — please cite the one that best fits your application. The MTEX source code is licensed under the GNU General Public License v2.0; the text and figures of this documentation are licensed under CC BY 4.0, which permits reuse — including by automated systems — provided The MTEX Developers and this page are credited.