Tipo matrice
Una matrice è un tipo di dati che contiene tra uno e sedici componenti scalari in una griglia bidimensionale. Ogni componente di una matrice deve essere dello stesso tipo.
Dichiarazione di tipo
È possibile dichiarare le variabili matrice usando il tipo scalare nome del contenuto della matrice con il numero di righe e colonne che contiene:
TypeRowsCols Name
Dove Type
è il tipo scalare di ognuno dei componenti, Rows
è un'espressione integer costante compresa tra 1 e 4 che indica il numero di righe, Cols
è un'espressione integer costante tra 1 e 4 inclusi che indica il numero di colonne e Name
è una stringa ASCII che identifica in modo univoco il nome della variabile.
Esempi:
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
};
Dichiarazione di stile modello
Una sintassi di dichiarazione alternativa usa la parola chiave matrix
e gli argomenti del modello per indicare il tipo scalare, il numero di righe e il numero di colonne:
matrix <Type=float, Rows=4, Cols=4> Name
Dove Type
è il tipo scalare di ognuno dei componenti, Rows
è un numero intero compreso tra 1 e 4 che indica il numero di righe, Cols
è un numero intero compreso tra 1 e 4 che indica il numero di colonne, ma vengono specificate tra parentesi angolari di stile modello.
Name
è una stringa ASCII che identifica in modo univoco il nome della variabile.
Si noti che le impostazioni predefinite del parametro modello consentono di specificare matrtici a 4 colonne di un determinato tipo e numero di righe lasciando fuori l'ultimo parametro, una matrice 4x4 di un determinato tipo lasciando fuori gli ultimi due parametri di modello o matrici float 4x4 lasciando fuori tutti e tre.
Esempi:
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 };
Vedere anche
tipi di dati (DirectX HLSL)