四元数结构

用于表示旋转的四维向量。

四元数可以按 (x、y、z) 向量的角度有效地旋转对象,其中 w = cos (theta/2) 。 四元数通常用于在两个角度之间平滑内插,并避免欧拉角可能出现的万向锁问题。

此类型仅在 C++ 中可用。 其 .NET 等效项是 System.Numerics.Quaternion

构造函数

名称 说明
quaternion() 创建未初始化的四元数。
quaternion(float x, float y, float z, float w) 使用指定值创建四元数。
quaternion(float3 vectorPart, float scalarPart) 从 float3 和标量创建四元数。
quaternion(Microsoft::?Graphics::?Canvas::?Numerics::?Quaternion const& value) Microsoft.Graphics.Canvas.Numerics.Quaternion 转换为四元数。

函数

名称 说明
quaternion make_quaternion_from_axis_angle(float3 const& axis, float angle) 从一个向量以及围绕该向量旋转的角度创建四元数。
quaternion make_quaternion_from_yaw_pitch_roll(float yaw, float pitch, float roll) 从指定的偏航、俯仰和滚动角度创建四元数。
quaternion make_quaternion_from_rotation_matrix(float4x4 const& matrix) 从旋转矩阵创建四元数。
bool is_identity(quaternion const& value) 检查此标识是否 (无旋转) 四元数。
float length(quaternion const& value) 计算四元数的长度。
float length_squared(quaternion const& value) 计算四元数的平方长度。
float dot(quaternion const& quaternion1, quaternion const& quaternion2) 计算两个四元数的点积。
quaternion normalize(quaternion const& value) 将四元数的每个分量除以四元数的长度。
quaternion conjugate(quaternion const& value) 计算四元数的共乘值。
quaternion inverse(quaternion const& value) 计算四元数的反数。
quaternion slerp(quaternion const& quaternion1, quaternion const& quaternion2, float amount) 使用球状线性内插,在两个四元数之间进行内插。
quaternion lerp(quaternion const& quaternion1, quaternion const& quaternion2, float amount) 在两个四元数之间线性内插。
quaternion concatenate(quaternion const& value1, quaternion const& value2) 连接两个四元数;结果表示第一个旋转后跟第二个旋转。

方法

名称 说明
static quaternion identity() 返回标识四元数的实例。

运算符

名称 说明
quaternion operator+ (quaternion const& value1, quaternion const& value2) 添加两个四元数。
quaternion operator- (quaternion const& value1, quaternion const& value2) 从另一个四元数减去四元数。
quaternion operator* (quaternion const& value1, quaternion const& value2) 将一个四元数乘以另一个四元数。
quaternion operator* (quaternion const& value1, float value2) 将四元数乘以标量值。
quaternion operator/ (quaternion const& value1, quaternion const& value2) 将一个四元数除以另一个四元数。
quaternion operator- (quaternion const& value) 翻转四元数的每个组件的符号。
quaternion& operator+= (quaternion& value1, quaternion const& value2) 就地添加两个四元数。
quaternion& operator-= (quaternion& value1, quaternion const& value2) 就地从另一个四元数减去四元数。
quaternion& operator*= (quaternion& value1, quaternion const& value2) 就地将四元数乘以另一个四元数。
quaternion& operator*= (quaternion& value1, float value2) 就地将四元数乘以标量值。
quaternion& operator/= (quaternion& value1, quaternion const& value2) 就地将四元数除以另一个四元数。
bool operator== (quaternion const& value1, quaternion const& value2) 确定四元数的两个实例是否相等。
bool operator!= (quaternion const& value1, quaternion const& value2) 确定四元数的两个实例是否不相等。
operator Microsoft::?Graphics::?Canvas::?Numerics::?Quaternion() const 将四元数转换为 Microsoft.Graphics.Canvas.Numerics.Quaternion

字段

名称 说明
float x 四元数的向量分量的 X 值。
float y 四元数的向量分量的 Y 值。
float z 四元数的向量分量的 Z 值。
float w 四元数的旋转分量。

要求

要求
命名空间 Windows::Foundation::Numerics
标头
Windowsnumerics.h

另请参阅

windowsnumerics.h API