A spatial [3x3] moving axes rotation matrix defined by three rotations around the x, y and z axes.
Namespace:
ceometric.VectorGeometryAssembly: ceometric.VectorGeometry (in ceometric.VectorGeometry.dll) Version: 1.8.0.0 (1.8.0.0)
Syntax
C# |
---|
public static Matrix3d RotationTaitBryan( double roll, double pitch, double yaw ) |
Visual Basic (Declaration) |
---|
Public Shared Function RotationTaitBryan ( _ roll As Double, _ pitch As Double, _ yaw As Double _ ) As Matrix3d |
Visual C++ |
---|
public: static Matrix3d^ RotationTaitBryan( double roll, double pitch, double yaw ) |
Parameters
- roll
- Type: System..::.Double
The angle in [radian] of the first rotation. Rotates counterclockwise around the local x-axis.
- pitch
- Type: System..::.Double
The angle in [radian] of the second rotation. Rotates counterclockwise around the (yet rotated) local y-axis.
- yaw
- Type: System..::.Double
The angle in [radian] of the third rotation. Rotates counterclockwise around the (yet twice rotated) local z-axis.
Return Value
Returns a [3x3] rotation matrix defined by three rotations around the local x, y and z axes.
Remarks
Tait-Bryan angles are also known as Cardan, nautical or roll-pitch-yaw angles.
"local axis" means that the axis of rotation is not fixed during the rotation.
See RotationEuler(Double, Double, Double) for fixed axis rotation.
Examples
The following example illustrates the rotation convention:
CopyC#
The coordinates of the rotated point are rotatedPoint = (0,0,1). This can be split into the following partial rotations:

Point p = new Point(1,0,0); Matrix3d rMat = Matrix3d.RotationTaitBryan(Math.PI/2, Math.PI/2, Math.PI/2); Point rotatedPoint = rMat * p;
- rotate p = (1,0,0) with roll = 90 degrees around the local x-Axis: p1 = (1,0,0) (global)
- rotate p1 = (1,0,0) with pitch = 90 degrees around the new local y-Axis: p2 = (0,1,0) (global)
- rotate p2 = (0,1,0) with yaw = 90 degrees around the new local z-Axis: p3 = (0,0,1) (global)