共用方式為


四元數結構

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

四元數可以有效率地旋轉物件繞著角度 the (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) 從指定的 yaw、pitch 和 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 四元數的旋轉元件。

需求

要求 價值觀
Namespace Windows::Foundation::Numerics
頁首
Windowsnumerics.h

另請參閱

windowsnumerics.h API