YawPitchRollAngles Class
Three angles that determine the orientation of an object in space. Sometimes referred to as Tait–Bryan angles.
- The matrix construction can be replicated by this logic:
- xyz coordinates have
- x forward
- y to left
- z up
- Note that this is a right handed coordinate system.
- yaw is a rotation of x towards y, i.e. around positive z:
yawMatrix = Matrix3d.createRotationAroundAxisIndex(2, Angle.createDegrees(yawDegrees));
- pitch is a rotation that raises x towards z, i.e. rotation around negative y:
pitchMatrix = Matrix3d.createRotationAroundAxisIndex(1, Angle.createDegrees(-pitchDegrees));
- roll is rotation of y towards z, i.e. rotation around positive x:
rollMatrix = Matrix3d.createRotationAroundAxisIndex(0, Angle.createDegrees(rollDegrees));
- The YPR matrix is the product
result = yawMatrix.multiplyMatrixMatrix(pitchMatrix.multiplyMatrixMatrix(rollMatrix));
- Note that this is for "column based" matrix, with vectors appearing to the right
- Hence a vector is first rotated by roll, then the pitch, finally yaw.
Methods
Name | Description | |
---|---|---|
constructor(yaw: Angle = Angle.zero(), pitch: Angle = Angle.zero(), roll: Angle = Angle.zero()): YawPitchRollAngles | ||
clone(): YawPitchRollAngles | Make a copy of this YawPitchRollAngles. | |
freeze(): void | Freeze this YawPitchRollAngles | |
isAlmostEqual(other: YawPitchRollAngles): boolean | * Compare angles between this and other . |
|
isIdentity(allowPeriodShift: boolean = true): boolean | Returns true if this rotation does nothing. | |
maxAbsDegrees(): number | Return the largest angle in degrees. | |
maxAbsRadians(): number | Return the largest angle in radians | |
maxDiffRadians(other: YawPitchRollAngles): number | Return the largest difference of angles (in radians) between this and other | |
setFrom(other: YawPitchRollAngles): void | Install all rotations from other into this . |
|
setFromJSON(json?: YawPitchRollProps): void | populate yaw, pitch and roll fields using Angle.fromJSON |
|
sumSquaredDegrees(): number | Return the sum of squared angles in degrees. | |
sumSquaredRadians(): number | Return the sum of the angles in squared radians | |
toJSON(): YawPitchRollProps | Convert to a JSON object of form { pitch: 20 , roll: 29.999999999999996 , yaw: 10 }. | |
toMatrix3d(result?: Matrix3d): Matrix3d | Expand the angles into a (rigid rotation) matrix. | |
createDegrees(yawDegrees: number, pitchDegrees: number, rollDegrees: number): YawPitchRollAngles Static | constructor for YawPitchRollAngles with angles in degrees. | |
createFromMatrix3d(matrix: Matrix3d, result?: YawPitchRollAngles): YawPitchRollAngles | undefined Static | Attempts to create a YawPitchRollAngles object from an Matrix3d This conversion fails if the matrix is not rigid (unit rows and columns, transpose is inverse) In the failure case the method's return value is undefined . |
|
createRadians(yawRadians: number, pitchRadians: number, rollRadians: number): YawPitchRollAngles Static | constructor for YawPitchRollAngles with angles in radians. | |
fromJSON(json?: YawPitchRollProps): YawPitchRollAngles Static | construct a YawPitchRoll object from an object with 3 named angles |
|
tryFromTransform(transform: Transform): object Static | Return an object from a Transform as an origin and YawPitchRollAngles. |
Properties
Name | Type | Description | |
---|---|---|---|
pitch | Angle | The pitch angle. | |
roll | Angle | The roll angle. | |
yaw | Angle | The yaw angle. |
Defined in
Last Updated: 08 January, 2020