Megosztás a következőn keresztül:


Mátrix típusa

A mátrix olyan adattípus, amely egy és tizenhat skaláris összetevőt tartalmaz egy kétdimenziós rácsban. A mátrix minden összetevőjének azonos típusúnak kell lennie.

Típusdeklaráció

Mátrixváltozók deklarálhatók a mátrix tartalmának skaláris típusának nevével, a benne lévő sorok és oszlopok számával:

TypeRowsCols Name

Ahol Type az egyes összetevők skaláris típusú, Rows egy 1 és 4 közötti állandó egész szám kifejezés, amely a sorok számát tartalmazza, Cols egy 1 és 4 közötti állandó egész szám kifejezés, amely az oszlopok számát és Name egy ASCII-sztring, amely egyedileg azonosítja a változó nevét.

Példák:

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
                   };   

Sablonstílusú deklaráció

Az alternatív deklaráció szintaxisa a matrix kulcsszó- és sablonargumentumokat használja a skaláris típus, a sorok száma és az oszlopok számának jelzésére:

matrix <Type=float, Rows=4, Cols=4> Name

Ahol Type az egyes összetevők skaláris típusa, Rows egy 1 és 4 közötti egész szám, amely a sorok számát tartalmazza, Cols egy 1 és 4 közötti egész szám, amely az oszlopok számát jelzi, de sablonstílusú szögletes zárójelekben vannak megadva. Name egy ASCII-sztring, amely egyedileg azonosítja a változó nevét.

Vegye figyelembe, hogy a sablonparaméter alapértelmezés szerint lehetővé teszi egy adott típusú és sorszámú 4 oszlopos mátrix megadását az utolsó paraméter, egy adott típusú 4x4-es mátrix elhagyásával az utolsó két sablonparaméter vagy a 4x4 lebegőpontos mátrixok elhagyásával mind a három paraméter elhagyásával.

Példák:

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 }; 

Lásd még:

adattípusok (DirectX HLSL)