EULERANGLESTOROTATION3D Convert 3D Euler angles to 3D rotation matrix.
MAT = eulerAnglesToRotation3d(PHI, THETA, PSI)
Creates a rotation matrix from the 3 euler angles PHI THETA and PSI,
given in degrees, using the 'XYZ' convention (local basis), or the
'ZYX' convention (global basis). The result MAT is a 4-by-4 rotation
matrix in homogeneous coordinates.
PHI: rotation angle around Z-axis, in degrees, corresponding to the
'Yaw'. PHI is between -180 and +180.
THETA: rotation angle around Y-axis, in degrees, corresponding to the
'Pitch'. THETA is between -90 and +90.
PSI: rotation angle around X-axis, in degrees, corresponding to the
'Roll'. PSI is between -180 and +180.
These angles correspond to the "Yaw-Pitch-Roll" convention, also known
as "Tait-Bryan angles".
The resulting rotation is equivalent to a rotation around X-axis by an
angle PSI, followed by a rotation around the Y-axis by an angle THETA,
followed by a rotation around the Z-axis by an angle PHI.
That is:
ROT = Rz * Ry * Rx;
MAT = eulerAnglesToRotation3d(ANGLES)
Concatenates all angles in a single 1-by-3 array.
... = eulerAnglesToRotation3d(ANGLES, CONVENTION)
CONVENTION specifies the axis rotation sequence. Default is 'ZYX'.
Supported conventions are:
'ZYX','ZXY','YXZ','YZX','XYZ','XZY'
'ZYZ','ZXZ','YZY','YXY','XZX','XYX'
Example
[n e f] = createCube;
phi = 20;
theta = 30;
psi = 10;
rot = eulerAnglesToRotation3d(phi, theta, psi);
n2 = transformPoint3d(n, rot);
drawPolyhedron(n2, f);
See also
transforms3d, createRotationOx, createRotationOy, createRotationOz
rotation3dAxisAndAngle
Package: matgeom