Scientific.Geometry.Quaternion.Quaternion

Package Scientific :: Package Geometry :: Module Quaternion :: Class Quaternion |
[frames] | no frames]

# Class Quaternion

Quaternion (hypercomplex number)

This implementation of quaternions is not complete; only the features needed for representing rotation matrices by quaternions are implemented.

Quaternions support addition, subtraction, and multiplication, as well as multiplication and division by scalars. Division by quaternions is not provided, because quaternion multiplication is not associative. Use multiplication by the inverse instead.

The four components can be extracted by indexing.

Instance Methods
__add__(self, other) |
__div__(self, other) |
__getitem__(self, item) |
__init__(self, *data) There are two calling patterns: |
__mul__(self, other) |
__rdiv__(self, other) |
__repr__(self) |
__rmul__(self, other) |
__sub__(self, other) |
`Numeric.array` |
asMatrix(self) Returns: a 4x4 matrix representation |
Scientific.Geometry.Transformation.Rotation |
asRotation(self) Returns: the corresponding rotation matrix |
dot(self, other) |
Quaternion |
inverse(self) Returns: the inverse |
`float` |
norm(self) Returns: the norm |
Quaternion |
normalized(self) Returns: the quaternion scaled such that its norm is 1 |

Class Variables
| is_quaternion = `1`

Method Details

### __init__(self, *data) (Constructor) |
There are two calling patterns: Quaternion(q0, q1, q2, q3) (from four real components) Quaternion(q) (from a sequence containing the four components)

### asMatrix(self) |
Returns: `Numeric.array` a 4x4 matrix representation

### asRotation(self) |
Returns: Scientific.Geometry.Transformation.Rotation the corresponding rotation matrix Raises: `ValueError` - if the quaternion is not normalized

### inverse(self) |
Returns: Quaternion the inverse

### norm(self) |
Returns: `float` the norm

### normalized(self) |
Returns: Quaternion the quaternion scaled such that its norm is 1