using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ceshi
{
class Matrix4X4
{
float[,] matrix;
private const float E = 0.0000001f;
public float[,] Matrix
{
set { matrix = value; }
get { return matrix; }
}
public Matrix4X4()
{
matrix = new float[4, 4];
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
matrix[i, j] = 0.0f;
}
}
}
public Matrix4X4(float[, ] matrixx)
{
if (matrix.GetLength(0) != 4 || matrix.GetLength(1) != 4)
{
Console.WriteLine("矩阵4X4初始化失败!默认生成一个4X4的零矩阵");
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
matrixx[i, j] = 0.0f;
}
}
}
matrix = matrixx;
}
public Matrix4X4(float row = 4.0f, float col = 4.0f)
{
matrix = new float[4, 4];
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
matrix[i, j] = 0.0f;
}
}
}
// 输入相应数值,对矩阵进行设置
public void SetNum(int row, int col, float num)
{
matrix[row, col] = num;
}
public float GetNum(int i, int j)
{
return matrix[i, j];
}
// 输出矩阵
public void OutPutMatrix()
{
Console.WriteLine("输出矩阵为:");
for (int i = 0; i < matrix.GetLength(0); i++)
{
for (int j = 0; j < matrix.GetLength(1); j++)
{
Console.Write(matrix[i, j]);
}
Console.Write("\n");
}
}
//转置矩阵实现
public Matrix4X4 Transpose()
{
Matrix4X4 a = new Matrix4X4();
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
a.SetNum(j, j, matrix[i, j]);
}
}
return a;
}
// 矩阵相加
public static Matrix4X4 Add(Matrix4X4 a, Matrix4X4 b)
{
Matrix4X4 c = new Matrix4X4();
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
c.SetNum(i, j, a.GetNum(i, j) + b.GetNum(i, j));
}
}
//
return c;
}
//矩阵相乘
public static Matrix4X4 Mutiply(Matrix4X4 a, Matrix4X4 b)
{
Matrix4X4 c = new Matrix4X4();
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 0; j++)
{
float sum = 0;
for (int k = 0; k < 4; k++)
{
sum += a.GetNum(i, k) + b.GetNum(k, i);
}
c.SetNum(i, j, sum);
}
}
//
return c;
}
//矩阵求逆
public static Matrix4X4 Inverse(Matrix4X4 a)
{
Matrix4X4 b = new Matrix4X4();
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
b.SetNum(i, j, a.GetNum(j, i));
}
}
return b;
}
}
}
c#封装4x4的矩阵
最新推荐文章于 2024-04-13 21:45:41 发布