quatInverse: Quaternion Inverse Calculation
Mathematical Inverse Operation
The quatInverse function calculates the true mathematical inverse of a quaternion using the formula . This operation produces the exact rotational inverse, undoing the original rotation when composed.
Mathematical Definition: For quaternion :
Properties:
- For any quaternion: (identity)
- Reverses the rotation represented by the quaternion
- Handles non-unit quaternions correctly through magnitude normalization
This function is essential for undoing rotations and solving rotational equations.
Rotational Error Analysis
This example demonstrates quaternion inverse accuracy by applying a rotation followed by its inverse and measuring the restoration error.
Live Editor
const fragment = () => { const cellPos = uv.mul(6) const cell = cellPos.floor() const local = cellPos.fract().sub(0.5) const hash = cell.x.mul(127.1).add(cell.y.mul(311.7)).sin().mul(43758.5).fract() const baseQ = vec4(hash.mul(6.28).sin(), hash.mul(3.14).cos(), hash.mul(9.42).sin(), hash.mul(1.57).cos()) const scaledQ = baseQ.mul(hash.mul(2).add(1)) const invQ = quatInverse(scaledQ) const testVector = vec3(local.x, local.y, hash) const rotated = quat2mat3(scaledQ).mul(testVector) const recovered = quat2mat3(invQ).mul(rotated) const errorMagnitude = recovered.sub(testVector).length() const precision = errorMagnitude.add(0.1).reciprocal() const visualField = precision.mul(0.1).sin().abs() const color = vec3(visualField, visualField.mul(0.7), visualField.mul(0.3)) return vec4(color, 1) }
The quatInverse function provides accurate quaternion inversion for precise rotational calculations and error correction in rotation sequences.