﻿RotationTaitBryan Method        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)