XMStoreFloat4x4 函数 (directxmath.h)

XMMATRIX 存储在 XMFLOAT4X4中。

语法

void XM_CALLCONV XMStoreFloat4x4(
  [out] XMFLOAT4X4 *pDestination,
  [in]  FXMMATRIX  M
) noexcept;

参数

[out] pDestination

存储数据的地址。

[in] M

包含要存储的数据的矩阵。

返回值

无。

备注

XMFLOAT4X4 是行主矩阵形式。 若要写出列主数据,需要在调用 store 函数之前通过 XMMatrixTranpose 转置 XMMATRIX

此函数采用矩阵,并将组件写入给定地址处的 16 个单精度浮点值。 第一行向量的最有效组件将写入地址的前四个字节,然后写入第一行的第二个有效组件,依此。 然后,第二行以类似方式写到从字节 16 开始的内存,然后第三行写到从字节 32 开始的内存,最后第四行写到内存,从字节 48 开始。

以下伪代码演示函数的操作。

pDestination->_11 = M[0].x; // 4 bytes to address (uint8_t*)pDestination
pDestination->_12 = M[0].y; // 4 bytes to address (uint8_t*)pDestination + 4
pDestination->_13 = M[0].z; // 4 bytes to address (uint8_t*)pDestination + 8
pDestination->_14 = M[0].w; // 4 bytes to address (uint8_t*)pDestination + 12

pDestination->_21 = M[1].x; // 4 bytes to address (uint8_t*)pDestination + 16
pDestination->_22 = M[1].y; // 4 bytes to address (uint8_t*)pDestination + 20
pDestination->_23 = M[1].z; // 4 bytes to address (uint8_t*)pDestination + 24
pDestination->_24 = M[1].w; // 4 bytes to address (uint8_t*)pDestination + 28

pDestination->_31 = M[2].x; // 4 bytes to address (uint8_t*)pDestination + 32
pDestination->_32 = M[2].y; // 4 bytes to address (uint8_t*)pDestination + 36
pDestination->_33 = M[2].z; // 4 bytes to address (uint8_t*)pDestination + 40
pDestination->_34 = M[2].w; // 4 bytes to address (uint8_t*)pDestination + 44

pDestination->_41 = M[3].x; // 4 bytes to address (uint8_t*)pDestination + 48
pDestination->_42 = M[3].y; // 4 bytes to address (uint8_t*)pDestination + 52
pDestination->_43 = M[3].z; // 4 bytes to address (uint8_t*)pDestination + 56
pDestination->_44 = M[3].w; // 4 bytes to address (uint8_t*)pDestination + 60

平台要求

Microsoft Visual Studio 2010 或 Microsoft Visual Studio 2012 与 Windows 8 Windows SDK。 支持 Win32 桌面应用、Windows 应用商店应用和 Windows Phone 8 应用。

要求

要求
目标平台 Windows
标头 directxmath.h

另请参阅

DirectXMath 库向量存储函数