四元数结构

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

四元数可以通过角度 theta 有效地旋转有关 (x, y, z) 向量的对象,其中 w = cos(theta/2)。 四元数通常用于两个角度之间的平滑内插,并避免尤勒角度可能发生的巨无常锁问题。

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

构造函数

名称 DESCRIPTION
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 转换为四元数。

功能

名称 DESCRIPTION
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) 连接两个四元数;结果表示第一个旋转后跟第二个旋转。

方法

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

运营商

名称 DESCRIPTION
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

领域

名称 DESCRIPTION
float x 四元数的向量组件的 X 值。
float y 四元数的向量组件的 Y 值。
float z 四元数的向量组件的 Z 值。
float w 四元数的旋转组件。

要求

要求 价值
Namespace Windows::Foundation::Numerics
标题
Windowsnumerics.h

另请参阅

windowsnumerics.h API