Learn R Programming

oro.nifti (version 0.4.3)

quaternion2rotation: Convert Quaternion into a Rotation Matrix

Description

The affine/rotation matrix $R$ is calculated from the quaternion parameters.

Usage

quaternion2mat44(nim, tol = 1e-7)
quaternion2rotation(b, c, d, tol = 1e-7)

Arguments

nim
is an object of class nifti.
tol
is a very small value used to judge if a number is essentially zero.
b
is the quaternion $b$ parameter.
c
is the quaternion $c$ parameter.
d
is the quaternion $d$ parameter.

Value

  • The (proper) $3{\times}3$ rotation matrix or $4{\times}4$ affine matrix.

Details

The quaternion representation is chosen for its compactness in representing rotations. The orientation of the $(x,y,z)$ axes relative to the $(i,j,k)$ axes in 3D space is specified using a unit quaternion $[a,b,c,d]$, where $a^2+b^2+c^2+d^2=1$. The $(b,c,d)$ values are all that is needed, since we require that $a=[1-(b^2+c^2+d^2)]^{1/2}$ be non-negative. The $(b,c,d)$ values are stored in the (quatern_b, quatern_c, quatern_d) fields.

References

NIfTI-1 http://nifti.nimh.nih.gov/

Examples

Run this code
## This R matrix is represented by quaternion [a,b,c,d] = [0,1,0,0]
## (which encodes a 180 degree rotation about the x-axis).
(R <- quaternion2rotation(1, 0, 0))

Run the code above in your browser using DataLab