矩阵通常在游戏处理表示有行和列的数据。
只有一行的矩阵,我们可以将其看成一个矢量。
数学表示:如图
在计算机中的表示:
矩阵的在计算机中通常有一个二维数组来表示。下面是一个三行三列的矩阵。
矩阵的定义
struct Matrix3X3
{
float x[3][3];
}
struct Matrix3X3
{
float x[3][3];
}
矩阵相等:
矩阵的行数和列数相等,并且对应行列的数值也要相等。
计算机判定实现两矩阵是否相等。
比较两矩阵是否相等
bool areMatricesEqual(Matrix3X3 a, Matrix3X3 b)
{
int errorFlag = 0;
for(int i = 0;i<3;i++)
{
for(int j=0;j<3;j++)
{
if((a.index[i][j]) != (b.index[i][j]))
errorFlag = 1;
}
}
//test for an error in equality.
if(errorFlag == 1)
return false;
else
return true;
}
bool areMatricesEqual(Matrix3X3 a, Matrix3X3 b)
{
int errorFlag = 0;
for(int i = 0;i<3;i++)
{
for(int j=0;j<3;j++)
{
if((a.index[i][j]) != (b.index[i][j]))
errorFlag = 1;
}
}
//test for an error in equality.
if(errorFlag == 1)
return false;
else
return true;
}
矩阵的转置数学表示
矩阵的转置的计算机中的实现
矩阵的转置
Matrix4X4 transpose4X4Matrix(Matrix4X4 a)
{
Matrix4X4 temp;
for(int i = 0;i<4;i++)
{
for(int j=0;j<4;j++)
{
temp.index[i][j] = a.index[j][i];
}
}
return temp;
}
Matrix4X4 transpose4X4Matrix(Matrix4X4 a)
{
Matrix4X4 temp;
for(int i = 0;i<4;i++)
{
for(int j=0;j<4;j++)
{
temp.index[i][j] = a.index[j][i];
}
}
return temp;
}