Aracılığıyla paylaş


Matris Türü

Matris, iki boyutlu bir kılavuzda bir ile on altı skaler bileşenleri içeren bir veri türüdür. Matrisin her bileşeni aynı türde olmalıdır.

Tür Bildirimi

Matrisin içeriğinin skaler türünü adını ve içerdiği satır ve sütun sayısını kullanarak matris değişkenlerini bildirebilirsiniz:

TypeRowsCols Name

Type her bileşenin skaler tür olduğunda, Rows 1 ile 4 arasında satır sayısını belirten sabit bir tamsayı ifadesidir; Cols 1 ile 4 arasında sütun sayısını belirten sabit bir tamsayı ifadesidir ve Name değişken adını benzersiz olarak tanımlayan bir ASCII dizesidir.

Örnekler:

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

Şablon Stili Bildirim

Alternatif bildirim söz diziminde skaler türü, satır sayısı ve sütun sayısını belirtmek için matrix anahtar sözcüğü ve şablon bağımsız değişkenleri kullanılır:

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

burada Type her bileşenin skaler tür, Rows satır sayısını belirten 1 ile 4 arasında bir tamsayıdır; Cols sütun sayısını belirten 1 ile 4 arasında bir tamsayıdır, ancak bunlar şablon stili köşeli ayraçlar içinde belirtilir. Name, değişken adını benzersiz olarak tanımlayan bir ASCII dizesidir.

Şablon parametresi varsayılanlarının, son parametreden, son iki şablon parametresinden veya 4x4 float matrislerinden ayrılarak son parametreden, belirli bir türdeki 4x4 matristen veya üçünü de atlayarak 4x4 float matrislerinden ayrılarak belirli bir tür ve satır sayısının 4 sütunlu matrislerinin belirtilmesine izin verdiğini unutmayın.

Örnekler:

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

Ayrıca bkz.

Veri Türleri (DirectX HLSL)