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:
The coordinates of the rotated point are rotatedPoint = (0,0,1). This can be split into the following partial rotations:

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;

- 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)