A spatial [3x3] moving axes rotation matrix defined by three rotations around the x, y and z axes.

Namespace:  ceometric.VectorGeometry
Assembly:  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#
Point p = new Point(1,0,0);
Matrix3d rMat = Matrix3d.RotationTaitBryan(Math.PI/2, Math.PI/2, Math.PI/2);
Point rotatedPoint = rMat * p;
The coordinates of the rotated point are rotatedPoint = (0,0,1). This can be split into the following partial rotations:
  • 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)

See Also