euler_matrix_new
This IDL facility provides a means to generate a 3D rotation Euler
matrix parametrized by three angles and three axes of rotation.
Location in HEALPix directory tree: src/idl/misc/euler_matrix_new.pro
FORMAT
IDL>
matrix = EULER_MATRIX_NEW(a1, a2, a3 [, X=, Y=, ZYX=, DEG=])
QUALIFIERS
-
matrix
- a 3x3 array containing the Euler matrix
-
a1
- input, float scalar,
angle of the first rotation, expressed in radians,
unless DEG (see below) is set
-
a2
- angle of the second rotation, same units as a1
-
a3
- angle of the third rotation, same units as a1
KEYWORDS
-
DEG=
- if set, the angles are in degrees instead of radians
-
X=
- if set, uses the classical mechanics convention (ZXZ):
rotation a1 around original Z axis,
rotation a2 around intermediate X axis,
rotation a3 around final Z axis
(see Goldstein for more details).
default:this convention is used
-
Y=
- if set, uses the quantum mechanics convention (ZYZ):
rotation a1 around original Z axis,
rotation a2 around intermediate Y axis,
rotation a3 around final Z axis.
-
ZYX=
- if set, uses the aeronautics convention (ZYX):
rotation a1 around original Z axis,
rotation a2 around intermediate Y axis,
rotation a3 around final X axis.
DESCRIPTION
box[t]euler_matrix_new allows the generation of a rotation Euler matrix. The user
can choose the three Euler angles, and the three axes of rotation.
If vec is an Ntex2html_wrap_inline$×$3 array containing N 3D vectors,
vecr = vec # euler_matrix_new(a1,a2,a3,/Y)
will be the rotated vectors
This routine supersedes euler_matrix, which had inconsistent angle
definitions. The relation between the two routines is as follows :
euler_matrix_new(a,b,c,/X) = euler_matrix(tex2html_wrap_inline$-$a,tex2html_wrap_inline$-$b,tex2html_wrap_inline$-$c,/X)
= Transpose(euler_matrix(c, b, a,/X))
euler_matrix_new(a,b,c,/Y) = euler_matrix(tex2html_wrap_inline$-$a, b,tex2html_wrap_inline$-$c,/Y)
= Transpose(euler_matrix(c,tex2html_wrap_inline$-$b, a,/Y))
euler_matrix_new(a,b,c,/Z) = euler_matrix(tex2html_wrap_inline$-$a, b,tex2html_wrap_inline$-$c,/Z)
RELATED ROUTINES
This section lists the routines related to euler_matrix_new
-
idl
- version 6.1 or more is necessary to run euler_matrix_new.
-
rotate_coord
- apply a rotation to a set of position vectors and
polarization Stokes parameters.
Version 3.11, 2013-04-24