Jenis Matriks
Matriks adalah jenis data yang berisi antara satu dan enam belas komponen skalar dalam kisi dua dimensi. Setiap komponen matriks harus memiliki jenis yang sama.
Deklarasi Jenis
Anda dapat mendeklarasikan variabel matriks dengan menggunakan jenis skalar nama konten matriks dengan jumlah baris dan kolom yang dikandungnya:
TypeRowsCols Name
Jika Type
adalah jenis skalar masing-masing komponen, Rows
adalah ekspresi bilangan bulat konstan antara 1 dan 4 inklusif yang menunjukkan jumlah baris, Cols
adalah ekspresi bilangan bulat konstan antara 1 dan 4 inklusif yang menunjukkan jumlah kolom dan Name
adalah string ASCII yang secara unik mengidentifikasi nama variabel.
Contoh:
int1x1 iMatrix; // integer matrix with 1 row, 1 column, 1 single component
int4x1 iMatrix; // integer matrix with 4 rows, 1 column, 4 total components
int1x4 iMatrix; // integer matrix with 1 row, 4 columns, 4 total components
double3x3 dMatrix; // double matrix with 3 rows, 3 columns, 9 total components
float3x2 fMatrix = { 0.0f, 0.1f, // row 1
2.1f, 2.2f, // row 2
4.1f, 4.2f // row 3
};
Deklarasi gaya templat
Sintaks deklarasi alternatif menggunakan kata kunci matrix
dan argumen templat untuk menunjukkan jenis skalar, jumlah baris, dan jumlah kolom:
matrix <Type=float, Rows=4, Cols=4> Name
Di mana Type
adalah jenis skalar masing-masing komponen, Rows
adalah bilangan bulat antara 1 dan 4 inklusif yang menunjukkan jumlah baris, Cols
adalah bilangan bulat antara 1 dan 4 inklusif yang menunjukkan jumlah kolom, tetapi ditentukan dalam kurung sudut gaya templat.
Name
adalah string ASCII yang secara unik mengidentifikasi nama variabel.
Perhatikan bahwa parameter templat default memungkinkan menentukan matrtika 4 kolom dari jenis tertentu dan jumlah baris dengan meninggalkan parameter terakhir, matriks 4x4 dari jenis tertentu dengan meninggalkan dua parameter templat terakhir atau matriks float 4x4 dengan meninggalkan ketiganya.
Contoh:
matrix <int, 1, 1> iMatrix = { 1 };
matrix <float, 2, 3> fMatrix = { 0.0f, 0.1f, 0.2f, // row 1
2.1f, 2.2f, 2.3f // row 2
};
matrix<int16_t, 1> sMatrix = { 1, 2, 3, 4 }; // Defaults to 1x4 int16 matrix
matrix<float16_t> hMatrix = { 0.0f, 0.1f, 0.2f, 0.3f, // Defaults to 4x4 float16 matrix
1.0f, 1.1f, 1.2f, 1.3f,
2.0f, 2.1f, 2.2f, 2.3f,
3.0f, 3.1f, 3.2f, 3.3f };
matrix fMatrix = { 0.0f, 0.1f, 0.2f, 0.3f, // Defaults to 4x4 float matrix
1.0f, 1.1f, 1.2f, 1.3f,
2.0f, 2.1f, 2.2f, 2.3f,
3.0f, 3.1f, 3.2f, 3.3f };
Lihat juga
Jenis Data (DirectX HLSL)