四元数结构
用于表示旋转的四维向量。
四元数可以按 (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