Learn R Programming

Directional (version 7.0)

Rotation matrix on SO(3) from three Euler angles: Construct a rotation matrix on SO(3) from the Euler angles.

Description

It forms a rotation matrix X on SO(3) by using three Euler angles \((\theta_{12}, \theta_{13}, \theta_{23})\), where X is defined as \(X=R_z(\theta_{12}) \times R_y(\theta_{13}) \times R_x( \theta_{23} )\). Here \(R_x (\theta_{23})\) means a rotation of \(\theta_{23}\) radians about the x axis.

Usage

eul2rot(theta.12, theta.23, theta.13)

Value

A roation matrix.

Arguments

theta.12

An Euler angle, a number which must lie in \((-\pi, \pi)\).

theta.23

An Euler angle, a number which must lie in \((-\pi, \pi)\).

theta.13

An Euler angle, a number which must lie in \((-\pi/2, \pi/2)\).

Author

Anamul Sajib <sajibstat@du.ac.bd>.

R implementation and documentation: Anamul Sajib <sajibstat@du.ac.bd>.

Details

Given three euler angles a rotation matrix X on SO(3) is formed using the transformation according to Green and Mardia (2006) which is defined above.

References

Green, P. J. and Mardia, K. V. (2006). Bayesian alignment using hierarchical models, with applications in proteins bioinformatics. Biometrika, 93(2):235--254.

See Also

rot2eul

Examples

Run this code
# three euler angles

theta.12 <- sample( seq(-3, 3, 0.3), 1 )
theta.23 <- sample( seq(-3, 3, 0.3), 1 )
theta.13 <- sample( seq(-1.4, 1.4, 0.3), 1 )

theta.12 ; theta.23 ; theta.13

X <- eul2rot(theta.12, theta.23, theta.13)
X  # A rotation matrix
det(X)

e <- rot2eul(X)$v1

theta.12 <- e[3]
theta.23 <- e[2]
theta.13 <- e[1]

theta.12 ; theta.23 ; theta.13

Run the code above in your browser using DataLab