Defines a quaternion (double-precision).

Namespace: DigitalRune.Mathematics.Algebra
Assembly: DigitalRune.Mathematics (in DigitalRune.Mathematics.dll) Version: 1.7.0.0 (1.7.0.9486)

Syntax

C#
[SerializableAttribute]
[TypeConverterAttribute(typeof(QuaternionDConverter))]
[ObfuscationAttribute(Feature = "controlflow")]
public struct QuaternionD : IEquatable<QuaternionD>
Visual Basic
<SerializableAttribute> _
<TypeConverterAttribute(GetType(QuaternionDConverter))> _
<ObfuscationAttribute(Feature := "controlflow")> _
Public Structure QuaternionD _
	Implements IEquatable(Of QuaternionD)
Visual C++
[SerializableAttribute]
[TypeConverterAttribute(typeof(QuaternionDConverter))]
[ObfuscationAttribute(Feature = L"controlflow")]
public value class QuaternionD : IEquatable<QuaternionD>

Remarks

A quaternion consists of a scalar component w and a vector component v = (x, y, z). Alternatively it can be represented as a complex number with three imaginary parts w + ix + jy + kz, or as a 4-dimensional vector (w, x, y, z)

Due to common notation, the quaternion components are stored in the order: (w, x, y, z).

Unit Quaternions:

A unit quaternion is a quaternion q where N(q) = 1. (See Norm.) A unit quaternion can be represented by

q = cosθ + usinθ,

where u as a 3D vector has a length of 1. By applying Euler's identity for complex numbers the quaternion can be written in exponential notation:

q = euθ = cosθ + usinθ

Several methods, such as Ln(QuaternionD), require that the quaternion is a unit quaternion.

See Also