Share via


四元數結構

四維向量,用來表示旋轉。

四元數可以透過角度 theta 有效率地旋轉 (x、y、z) 向量的物件,其中 w = cos (theta/2) 。 四元數通常用於兩個角度之間的平滑插補,並避免使用 Euler 角度可能發生的 Gimbal 鎖定問題。

此類型僅適用于 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) 從指定的 yaw、音調和滾動角度建立四元數。
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) 就地 nultiplies 依純量值四元數。
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