3D Map Orientation

3D Map Orientation is given by a set of geometrical parameters that describes the direction, angle, or position with respect to an initial or standard direction. Orientation parameters are used, for example, to transform one orientation into another (i.e. converting the orientation of the object in Fig. 2b so it matches Fig. 2a) or to align 2D projection images for 3D reconstruction.

Among other possibilities, orientation may be described as a "view" vector and the rotation angle around the vector {x,y,z,alpha} or as a set of Euler angles describing three successive rotations {phi, theta, psi} (Fig. 1, Table 1). The standard orientation is symmetry dependent ( Heymann et al. (2005)). It is usually determined from the reference map orientation for asymmetric objects, the orientation of symmetry axes for symmetric objects, or the unit-cell orientation for crystalline objects (see ).

Following the convention described in Heymann et al. (2005), in this document Euler angles are defined as rotations around axes z, y and z, respectively. Euler angles and view vectors are related as described in Figure 1 and Table 1.

 

(a) Euler angles describe three successive rotations around major axes:  1) phi, a rotation about the z-axis; 2) theta, a rotation about the new y-axis; and 3) psi, a rotation about the new z-axis. (b) The view is defined by a vector on the unit sphere and a rotation angle around this vector, written as a four-value unit, {x,y,z,alpha}.
Figure 1: The standard view definition expressed in terms of Euler angles (a) or the view vector (b).


Table 1: Relationship between the view and the standard Euler angles
View to Euler angles
Euler angles to view

phi = arctan(y/x)

theta = arccos(z)

psi = alpha - phi

if x = y = 0, then phi = 0 deg. (theta = 0 or 180 deg.)

x = cos(phi) * sin(theta)

y = sin(phi) * sin(theta)

z = cos(theta)

alpha = psi + phi

 

Example

 


(a) Standard view:
View = {0, 0, 1, 0}
Euler angles = {0, 0, 0}
Rotation matrix:
1 0 0
0 1 0
0 0 1
(b) Arbitrary view:
View = {0.612, 0.612, -0.5, 105}
Euler angles = {phi=45, theta=120, psi=60}
Rotation matrix:
-0.7891 0.4356 -0.4330
-0.0474 0.6597 0.7500
0.6124 0.6124 -0.5000
Figure 2: The standard view (a) and an arbitrarily chosen view (b) with the associated view vectors and Euler angles. The last row in the rotation matrix is identical to the view vector and the last column gives the transformation of the z-axis in Figure 2a to the corresponding vector in Figure 2b. The rotation matrix transform the view vector to the view vector associated with the standard view.

The rotation defined by the matrices in Figure 2 is expected to be applied as follows:

 

Rotation matrix

where {x,y,z} is the original vector and {x',y',z'} is the final vector after rotation.

At the 3DEM Image Conventions web page (press here) you may find many more views with the corresponding matrices, Euler angles, and view vectors. This information might be useful to further test the 3D map orientation.


Please, write explicitly the equations used by your system to compute the rotation matrix for a given set of euler angles or view vector plus angle. Use the variable names: (i) phi, theta and psi for the first, second and third Euler angles as defined in your package or (ii) x, y, z and alpha for the view vector plus angle.

Example: (this is the 3DEM Convention)

r11 = cos(psi)*cos(theta)*cos(phi)-sin(psi)*sin(phi)
r12 = cos(psi)*cos(theta)*sin(phi)+sin(psi)*cos(phi)
r13 = -cos(psi)*sin(theta)

r21 = -sin(psi)*cos(theta)*cos(phi)-cos(psi)*sin(phi)
r22 = -sin(psi)*cos(theta)*sin(phi)+cos(psi)*cos(phi)
r23 = sin(psi)*sin(theta)

r31 = sin(theta)*cos(phi)
r32 = sin(theta)*sin(phi)
r33 = cos(theta)

INPUT: type equations in the following boxes

( Valid functions: abs(x), acos(x), asin(x), atan(x), atan2(y,x), ceil(x), cos(x) exp(x), floor(x), log(x), max(x,y), min(x,y) pow(x,y), random(), round(x), sin(x), sqrt(x), tan(x)
valid constants: E, LN2, LN10, LOG10E, LOG2E, PI, SQRT1_2, SQRT2
NAMES ARE CASE SENSITIVE.)

r11: r12: r13:
r21: r22: r23:
r31: r32: r33:

Calculate! In order to check possible typos the values of the rotation matrix are computed online for the View = {0.612, 0.612, -0.5, 105} OR Euler angles = {45, 120, 60}. Please double check that the resulting matrix (after pressing "calculate") is correct for your package. In particular, the determinant should be 1 (but for rounding errors)

 

OUTPUT: Rotation matrix for View = {0.612, 0.612, -0.5, 105} OR Euler angles = {phi=45, theta=120, psi=60}

r11:  r12:  r13: 
r21:  r22:  r23: 
r31:  r32:  r33: 

determinant: 

There are numerous conventions regarding the Euler angles and view vectors in use. Even within a given mathematical choice of convention, one frequently finds different and conflicting choice of notation. Please, describe your definition of Euler angles and/or view vector bellow including your notation (name given to each Euler angles and or view vector coordinates)

  

Click here to go back to the main window without saving the changes