Skip to content

Latest commit

 

History

History
108 lines (91 loc) · 1.95 KB

Quaternions.md

File metadata and controls

108 lines (91 loc) · 1.95 KB

Quaternions

The quaternion class contains parameters q0, q1, q2 and q3

TODO - which one is real


Currently the quaternion class is still very much in development, therefore many quaternion operations are missing

Functions

  1. Initalisation
  2. Standard
  3. Comparison
  4. [Extra functionality](#Extra Functionality)

Initalisation

Calling the matrix with out parameters will initalise a zero quaternion

>>> pyclid.Quat()
<0, 0, 0, 0>

or values can be set by passing in parameters

>>> pyclid.Quat(1, 2, 3, 4)
<1, 2, 3, 4>

Standard

Addition

>>> a = pyclid.Quat(1, 2, 3, 4)
>>> b = pyclid.Quat(1, 2, 3, 4)
>>> a+b
<2, 4, 6, 8>

Subtraction

>>> a = pyclid.Quat(4, 4, 4, 4)
>>> b = pyclid.Quat(1, 2, 3, 4)
>>> a-b
<3, 2, 1, 0>

Multiplication

Quaternions can be multiplied by a number or another quaternion

Multiplication by a number

>>> a = pyclid.Quat(1, 2, 3, 4)
>>> a*2
<2, 4, 6, 8>

Multiplication by a quaternion

>>> a = pyclid.Quat(1, 2, 3, 4)
>>> b = pyclid.Quat(1, 2, 3, 4)
>>> a*b
<-28, 4, 6, 8>

Division

Missing

Comparison

Comparison is performed on an element by element basis between two quaternions

Equal

>>> a = pyclid.Quat(1, 2, 3, 4)
>>> b = pyclid.Quat(1, 2, 3, 4)
>>> a==b
True

Not Equal

>>> a = pyclid.Quat(1, 2, 3, 4)
>>> b = pyclid.Quat(5, 2, 3, 4)
>>> a!=b
True

Extra Functionality

Magnitude

>>> a = pyclid.Quat(1, 2, 3, 4)
>>> a.magnitude()
5.477225575051661

Unit

Returns the unit quaternion

>>> a = pyclid.Quat(1, 2, 3, 4)
>>> a.unit()
<0.182574185835, 0.36514837167, 0.547722557505, 0.73029674334>