XMMATRIX 結構 (directxmath.h)

描述對應至四個硬體向量緩存器之 16 位元組界限上對齊的 4*4 矩陣。

DirectXMath 使用數據列主要矩陣、數據列向量和預先乘法。 手動性取決於使用哪些函式版本 (RH 與 LH) 。

如需使用 C++ 進行程式設計時可用的 XMMATRIX 建構函式和運算子等其他功能清單,請參閱 XMMATRIX 延伸模組

注意如需對等D3DDECLTYPED3DFORMATDXGI_FORMAT對象的相關信息,請參閱 DirectXMath 連結庫類型等價
 

語法

struct XMMATRIX {
  union {
    XMVECTOR r[4];
    struct {
      float _11;
      float _12;
      float _13;
      float _14;
      float _21;
      float _22;
      float _23;
      float _24;
      float _31;
      float _32;
      float _33;
      float _34;
      float _41;
      float _42;
      float _43;
      float _44;
    };
    float    m[4][4];
  };
  XMVECTOR              r[4];
  void                  XMMATRIX();
  void                  XMMATRIX(
    const XMMATRIX & unnamedParam1
  );
  XMMATRIX &            operator=(
    const XMMATRIX & M
  ) noexcept;
  XMMATRIX &            operator=(
    const XMMATRIX & unnamedParam1
  );
  void                  XMMATRIX(
    XMMATRIX && unnamedParam1
  );
  XMMATRIX &            operator=(
    XMMATRIX && unnamedParam1
  );
  void                  XMMATRIX(
    FXMVECTOR R0,
    FXMVECTOR R1,
    FXMVECTOR R2,
    CXMVECTOR R3
  ) noexcept;
  void                  XMMATRIX(
    float m00,
    float m01,
    float m02,
    float m03,
    float m10,
    float m11,
    float m12,
    float m13,
    float m20,
    float m21,
    float m22,
    float m23,
    float m30,
    float m31,
    float m32,
    float m33
  ) noexcept;
  void                  XMMATRIX(
    const float *pArray
  ) noexcept;
  float                 operator()(
    size_t Row,
    size_t Column
  ) noexcept;
  float &               operator()(
    size_t Row,
    size_t Column
  ) noexcept;
  XMMATRIX              operator+() noexcept;
  XMMATRIX              operator-() noexcept;
  XMMATRIX &XM_CALLCONV operator+=(
    FXMMATRIX M
  ) noexcept;
  XMMATRIX &XM_CALLCONV operator-=(
    FXMMATRIX M
  ) noexcept;
  XMMATRIX &XM_CALLCONV operator*=(
    FXMMATRIX M
  ) noexcept;
  XMMATRIX &            operator*=(
    float S
  ) noexcept;
  XMMATRIX &            operator/=(
    float S
  ) noexcept;
  XMMATRIX XM_CALLCONV  operator+(
    FXMMATRIX M
  ) noexcept;
  XMMATRIX XM_CALLCONV  operator-(
    FXMMATRIX M
  ) noexcept;
  XMMATRIX XM_CALLCONV  operator*(
    FXMMATRIX M
  ) noexcept;
  XMMATRIX              operator*(
    float S
  ) noexcept;
  XMMATRIX              operator/(
    float S
  ) noexcept;
};

成員

r[4]

四個向量的陣列,表示矩陣的數據列。

_11

_12

_13

_14

_21

_22

_23

_24

_31

_32

_33

_34

_41

_42

_43

_44

m[4]

void XMMATRIX ()

的預設建構函式 XMMATRIX

XMMATRIX 的預設建構函式。

注意 只有在使用 C++ 進行開發時,才能使用此建構函式。
 

void XMMATRIX ( const XMMATRIX & unnamedParam1)

的建構函式 XMMATRIX

XMMATRIX 的建構函式。

注意 只有在使用 C++ 進行開發時,才能使用此建構函式。

XMMATRIX & operator= ( const XMMATRIX & M) noexcept

將 一個 實例 XMMATRIX 的矩陣數據指派給 的目前 實例 XMMATRIX ,並將 傳回 reference 至目前的實例。

這個運算符會將一個 XMMATRIX 實例的矩陣數據指派給 目前的 實例 XMMATRIX ,並將 傳回 reference 給目前的實例。

注意 只有在使用 C++ 進行開發時,才能使用這個運算符。
 

XMMATRIX & operator=( const XMMATRIX & unnamedParam1)

void XMMATRIX( XMMATRIX && unnamedParam1)

XMMATRIX & operator=( XMMATRIX && unnamedParam1)

void XMMATRIX ( FXMVECTOR R0, FXMVECTOR R1, FXMVECTOR R2, CXMVECTOR R3) noexcept

從的四個實例初始化 XMMATRIX 結構的新實例 XMVECTOR

XMVECTOR 資料類型的四個實例,初始化 XMMATRIX 結構的新實例。

注意 只有在使用 C++ 進行開發時,才能使用此建構函式。

void XMMATRIX ( float m00, float m01, float m02, float m03, float m10, float m11, float m12, float m13, float m20, float m21, float m22, float m23, float m30, float m31, float m32, float m33) noexcept

從十六個純量float值初始化 結構的新實例XMMATRIX

從十六個純量float值初始化 XMMATRIX 結構的新實例。

注意 只有在使用 C++ 進行開發時,才能使用此建構函式。
 

void XMMATRIX ( const float *pArray) noexcept

從十六個元素float陣列初始化 XMMATRIX 結構的新實例。

從十六個元素float陣列初始化 XMMATRIX 結構的新實例。

注意 只有在使用 C++ 進行開發時,才能使用此建構函式。
 

float operator()( size_t Row, size_t Column) noexcept

float & 運算符 () ( size_t Row, size_t Column) noexcept

reference 回 實例的 XMMATRIX 矩陣專案,如數據列和數據行自變數所指定。

這個運算符會將 reference 傳回至 實例 XMMATRIX 的矩陣元素,如數據列和數據行自變數所指定。

注意 只有在使用 C++ 進行開發時,才能使用這個運算符。
 

XMMATRIX operator+() noexcept

XMMATRIX operator-() noexcept

XMMATRIX &XM_CALLCONV operator+=( FXMMATRIX M) noexcept

XMMATRIX &XM_CALLCONV operator-=( FXMMATRIX M) noexcept

XMMATRIX &XM_CALLCONV 運算子*= ( FXMMATRIX M) noexcept

執行 另一個 實例目前 實例XMMATRIXXMMATRIX的矩陣乘法,並傳回已更新之目前實例的參考。

這個運算符會由 另一個 實例執行 目前 XMMATRIX 實例 XMMATRIX 的矩陣乘法,並傳回已更新之目前實例的參考。

注意 只有在使用 C++ 進行開發時,才能使用這個運算符。
 

XMMATRIX & operator*=( float S) noexcept

XMMATRIX & operator/=( float S) noexcept

XMMATRIX XM_CALLCONV operator+( FXMMATRIX M) noexcept

XMMATRIX XM_CALLCONV operator-( FXMMATRIX M) noexcept

XMMATRIX XM_CALLCONV 運算元* ( FXMMATRIX M) noexcept

執行 目前 實例 XMMATRIX 的矩陣乘法, 的另一個 實例 XMMATRIX

這個運算子會由 的另一個 實例執行 目前 XMMATRIX 實例的 XMMATRIX矩陣乘法。

注意 只有在使用 C++ 進行開發時,才能使用這個運算符。
 

XMMATRIX operator*( float S) noexcept

XMMATRIX operator/( float S) noexcept

備註

在 DirectXMath.h 頭檔中,系統會使用 對象的別名 XMMATRIX ,特別是 CXMMATRIX。 標頭會使用 別名來符合不同編譯程式的最佳內嵌呼叫慣例。 對於大部分使用 DirectXMath 的專案,只要將此視為 的確切別名 XMMATRIX即可。

有效:


typedef const XMMATRIX CXMMATRIX;

如需需要如何處理不同平臺呼叫慣例的詳細信息的專案,請參閱連結庫內部。

XMMATRIX 是數據列主要,而且所有接受 XMMATRIX 做為參數的 DirectXMath 函式都預期數據會組織為數據列主要。

中的數據 XMMATRIX 具有下列配置。


_11 _12 _13 _14
_21 _22 _23 _24
_31 _32 _33 _34
_41 _42 _43 _44

DirectXMath 會將 XMMATRIX 定義為完全不透明類型。 若要存取 XMMATRIX 的個別元素,請使用對等類型,例如指定數據列 的XMFLOAT4 ,或針對整個矩陣 使用XMFLOAT4X4

注意 XNAMath 2.x 定義為 XMMATRIX 具有 _11_44 成員和 m 陣列成員 等位。 當您使用這些等位成員時,效能不佳的結果。 當您使用 _XM_NO_INTRINSICS_ 建置應用程式時,DirectXMath.h 仍會定義這些XMMATRIX等位成員。 XNAMath 2.05 版提供選擇加入XM_STRICT_XMMATRIX來強制執行 DirectXMath 行為。
 
命名空間: 使用 DirectX

平臺需求

Microsoft Visual Studio 2010 或 Microsoft Visual Studio 2012 搭配 Windows SDK for Windows 8。 支援 Win32 傳統型應用程式、Windows 市集應用程式和 Windows Phone 8 個應用程式。

規格需求

需求
標頭 directxmath.h

另請參閱

DirectXMath 連結庫結構

XMFLOAT4X4

XMMATRIX 延伸模組