共用方式為


float4x4 結構

用於 3D 轉換的 4x4 矩陣。

此矩陣類型會使用資料列向量配置。 此矩陣轉譯向量的 x、y 和 z 對應至 m41、m42、m43 欄位。

此類型僅適用于 C++。 其 .NET 對等專案是 System.Numerics.Matrix4x4

建構函式

名稱 描述
float4x4() 建立未初始化的 float4x4。
float4x4(float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44) 使用指定的值建立 float4x4。
explicit float4x4(float3x2 value) 從 float3x2 建立 float4x4。
float4x4(Microsoft::?Graphics::?Canvas::?Numerics::?Matrix4x4 const& value) Microsoft.Graphics.Canvas.Numerics.Matrix4x4 轉換為 float4x4。

函式

名稱 描述
float4x4 make_float4x4_billboard(float3 const& objectPosition, float3 const& cameraPosition, float3 const& cameraUpVector, float3 const& cameraForwardVector) 使用右手座標系統,建立繞著指定物件位置旋轉的球面計費板。
float4x4 make_float4x4_?constrained_billboard(float3 const& objectPosition, float3 const& cameraPosition, float3 const& rotateAxis, float3 const& cameraForwardVector, float3 const& objectForwardVector) 使用右手座標系統,建立繞著指定座標軸旋轉的橢圓形計費板。
float4x4 make_float4x4_translation(float3 const& position) 建立轉移矩陣。
float4x4 make_float4x4_translation(float xPosition, float yPosition, float zPosition) 建立轉移矩陣。
float4x4 make_float4x4_scale(float xScale, float yScale, float zScale) 建立以原點為中心的縮放矩陣。
float4x4 make_float4x4_scale(float xScale, float yScale, float zScale, float3 const& centerPoint) 建立以指定點為中心的縮放矩陣。
float4x4 make_float4x4_scale(float3 const& scales) 建立以原點為中心的縮放矩陣。
float4x4 make_float4x4_scale(float3 const& scales, float3 const& centerPoint) 建立以指定點為中心的縮放矩陣。
float4x4 make_float4x4_scale(float scale) 建立以原點為中心的縮放矩陣。
float4x4 make_float4x4_scale(float scale, float3 const& centerPoint) 建立以指定點為中心的縮放矩陣。
float4x4 make_float4x4_rotation_x(float radians) 建立以原點為中心的 X 軸旋轉矩陣。
float4x4 make_float4x4_rotation_x(float radians, float3 const& centerPoint) 建立以指定點為中心的 X 軸旋轉矩陣。
float4x4 make_float4x4_rotation_y(float radians) 建立以原點為中心的 Y 軸旋轉矩陣。
float4x4 make_float4x4_rotation_y(float radians, float3 const& centerPoint) 建立以指定點為中心的 Y 軸旋轉矩陣。
float4x4 make_float4x4_rotation_z(float radians) 建立以原點為中心的 Z 軸旋轉矩陣。
float4x4 make_float4x4_rotation_z(float radians, float3 const& centerPoint) 建立以指定點為中心的 Z 軸旋轉矩陣。
float4x4 make_float4x4_from_axis_angle(float3 const& axis, float angle) 建立繞著任意向量旋轉的矩陣。
float4x4 make_float4x4_perspective_field_of_view(float fieldOfView, float aspectRatio, float nearPlaneDistance, float farPlaneDistance) 使用右手座標系統,根據檢視欄位建立透視投影矩陣。
float4x4 make_float4x4_perspective(float width, float height, float nearPlaneDistance, float farPlaneDistance) 使用右手座標系統建立透視投影矩陣。
float4x4 make_float4x4_perspective_off_center(float left, float right, float bottom, float top, float nearPlaneDistance, float farPlaneDistance) 使用右手座標系統建立自訂的透視投影矩陣。
float4x4 make_float4x4_orthographic(float width, float height, float zNearPlane, float zFarPlane) 使用右手座標系統建立正視投影矩陣。
float4x4 make_float4x4_?orthographic_off_center(float left, float right, float bottom, float top, float zNearPlane, float zFarPlane) 使用右手座標系統建立自訂的正視投影矩陣。
float4x4 make_float4x4_look_at(float3 const& cameraPosition, float3 const& cameraTarget, float3 const& cameraUpVector) 使用右手座標系統建立檢視矩陣。
float4x4 make_float4x4_world(float3 const& position, float3 const& forward, float3 const& up) 使用右手座標系統建立世界矩陣。 這可以用來將物件放置在 3D 空間中。
float4x4 make_float4x4_from_quaternion(quaternion const& quaternion) 從四元數建立旋轉矩陣。
float4x4 make_float4x4_from_yaw_pitch_roll(float yaw, float pitch, float roll) 從指定的 yaw、音調和滾輪建立旋轉矩陣。
float4x4 make_float4x4_shadow(float3 const& lightDirection, plane const& plane) 建立會將幾何簡維成指定平面的矩陣,就像從指定光源投射的陰影一樣。
float4x4 make_float4x4_reflection(plane const& value) 建立反映指定平面之座標系統的矩陣。
bool is_identity(float4x4 const& value) 檢查這是否為識別矩陣。
float determinant(float4x4 const& value) 計算矩陣的行列。
float3 translation(float4x4 const& value) 取得矩陣的轉譯向量。
bool invert(float4x4 const& matrix, _Out_ float4x4* result) 計算矩陣的反轉。 如果矩陣可以反轉,則傳回 true;否則為 false。
bool decompose(float4x4 const& matrix, _Out_ float3* scale, _Out_ quaternion* rotation, _Out_ float3* translation) 從 3D 縮放/旋轉/轉譯 (SRT) 矩陣擷取純量、轉譯和旋轉元件。 如果矩陣可以分解,則傳回 true;否則為 false。
float4x4 transform(float4x4 const& value, quaternion const& rotation) 套用四元數旋轉來轉換矩陣。
float4x4 transpose(float4x4 const& matrix) 將矩陣的元件沿著其對角線轉置。
float4x4 lerp(float4x4 const& matrix1, float4x4 const& matrix2, float amount) 在兩個矩陣的對應值之間線性插補。

方法

名稱 描述
static float4x4 identity() 傳回識別矩陣的實例。

運算子

名稱 描述
float4x4 operator+ (float4x4 const& value1, float4x4 const& value2) 將矩陣的每個元件新增至另一個矩陣。
float4x4 operator- (float4x4 const& value1, float4x4 const& value2) 從另一個矩陣減去矩陣的每個元件。
float4x4 operator* (float4x4 const& value1, float4x4 const& value2) 將矩陣乘以另一個矩陣。 這會影響串連兩個轉換。
float4x4 operator* (float4x4 const& value1, float value2) 將矩陣的每個元件乘以純量值。
float4x4 operator- (float4x4 const& value) 否定矩陣的每個元件。
float4x4& operator+= (float4x4& value1, float4x4 const& value2) 就地將矩陣的每個元件新增至另一個矩陣。
float4x4& operator-= (float4x4& value1, float4x4 const& value2) 就地從另一個矩陣減去矩陣的每個元件。
float4x4& operator*= (float4x4& value1, float4x4 const& value2) 就地將矩陣乘以另一個矩陣。 這會影響串連兩個轉換。
float4x4& operator*= (float4x4& value1, float value2) 就地會將矩陣的每個元件乘以純量值。
bool operator== (float4x4 const& value1, float4x4 const& value2) 判斷 float4x4 的兩個實例是否相等。
bool operator!= (float4x4 const& value1, float4x4 const& value2) 判斷 float4x4 的兩個實例是否不相等。
operator Microsoft::?Graphics::?Canvas::?Numerics::?Matrix4x4() const 將 float4x4 轉換為 Microsoft.Graphics.Canvas.Numerics.Matrix4x4

欄位

名稱 描述
float m11 矩陣第 1 欄 1 的值。
float m12 矩陣第 1 欄 2 的值。
float m13 矩陣第 1 欄 3 的值。
float m14 矩陣第 1 欄 4 的值。
float m21 矩陣第 2 欄 1 的值。
float m22 矩陣第 2 欄 2 的值。
float m23 矩陣第 2 欄 3 的值。
float m24 矩陣第 2 欄 4 的值。
float m31 矩陣第 3 欄 1 的值。
float m32 矩陣第 3 欄 2 的值。
float m33 矩陣第 3 欄 3 的值。
float m34 矩陣第 3 欄 4 的值。
float m41 矩陣第 4 欄 1 的值。
float m42 矩陣第 4 欄 2 的值。
float m43 矩陣第 4 欄 3 的值。
float m44 矩陣第 4 欄 4 的值。

規格需求

需求
命名空間 Windows::Foundation::Numerics
標頭
Windowsnumerics.h

另請參閱

windowsnumerics.h API