Bagikan melalui


Fungsi XMStoreFloat4x3 (directxmath.h)

Menyimpan XMMATRIX dalam XMFLOAT4X3.

Sintaks

void XM_CALLCONV XMStoreFloat4x3(
  [out] XMFLOAT4X3 *pDestination,
  [in]  FXMMATRIX  M
) noexcept;

Parameter

[out] pDestination

Alamat untuk menyimpan data.

[in] M

Matriks yang berisi data yang akan disimpan.

Menampilkan nilai

Tidak ada.

Keterangan

XMFLOAT4X3 adalah bentuk matriks utama baris. Fungsi ini tidak dapat digunakan untuk menulis data utama kolom karena mengasumsikan kolom terakhir adalah 0 0 0 1.

Fungsi ini mengambil matriks dan menulis komponen hingga dua belas nilai floating-point presisi tunggal pada alamat yang diberikan. Komponen paling signifikan dari vektor baris pertama ditulis ke empat byte pertama alamat, diikuti oleh komponen kedua yang paling signifikan dari baris pertama, diikuti oleh komponen ketiga paling signifikan dari baris pertama. Tiga komponen paling signifikan dari baris kedua kemudian ditulis dengan cara yang mirip dengan memori yang dimulai pada byte 12, diikuti oleh baris ketiga ke memori yang dimulai pada byte 24, dan akhirnya baris keempat ke memori dimulai pada byte 36.

Pseudocode berikut menunjukkan pengoperasian fungsi.

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->_21 = M[1].x; // 4 bytes to address (uint8_t*)pDestination + 12
pDestination->_22 = M[1].y; // 4 bytes to address (uint8_t*)pDestination + 16
pDestination->_23 = M[1].z; // 4 bytes to address (uint8_t*)pDestination + 20

pDestination->_31 = M[2].x; // 4 bytes to address (uint8_t*)pDestination + 24
pDestination->_32 = M[2].y; // 4 bytes to address (uint8_t*)pDestination + 28
pDestination->_33 = M[2].z; // 4 bytes to address (uint8_t*)pDestination + 32

pDestination->_41 = M[3].x; // 4 bytes to address (uint8_t*)pDestination + 36
pDestination->_42 = M[3].y; // 4 bytes to address (uint8_t*)pDestination + 40
pDestination->_43 = M[3].z; // 4 bytes to address (uint8_t*)pDestination + 44

Persyaratan Platform

Microsoft Visual Studio 2010 atau Microsoft Visual Studio 2012 dengan Windows SDK untuk Windows 8. Didukung untuk aplikasi desktop Win32, aplikasi Windows Store, dan aplikasi Windows Phone 8.

Persyaratan

   
Target Platform Windows
Header directxmath.h

Lihat juga

Fungsi Penyimpanan Vektor Pustaka DirectXMath