Microsoft DirectX 8.1 (C++) |
Describes a quaternion.
typedef struct D3DXQUATERNION { FLOAT x, y, z, w; } D3DXQUATERNION;
Quaternions add a fourth element to the [x, y, z] values that define a vector, resulting in arbitrary 4-D vectors. However, the following illustrates how each element of a unit quaternion relates to an axis-angle rotation (where q represents a unit quaternion (x, y, z, w), axis is normalized, and theta is the desired CCW rotation about the axis):
q.x = sin(theta/2) * axis.x q.y = sin(theta/2) * axis.y q.z = sin(theta/2) * axis.z q.w = cos(theta/2)
C++ programmers can take advantage of operator overloading and type casting. The C++ implementation of the D3DXQUATERNION structure implements overloaded constructors and overloaded assignment, unary and binary (including equality) operators. For more information, see C++ Specific Features.
Header: Declared in D3dx8math.h.