⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 maxtrix.h

📁 基于MFC的z-buffer算法实现
💻 H
字号:
//#include <iostream.h>
class Matrix
{
public:
	int ROW;                       //行数
	int COL;                       //列数
	double **p; 
public:
	Matrix(int m=0,int n=0,double *A=NULL,int k=0)//;	       //矩阵的构造函数
	{
		ROW=m;                         //指定行数
		COL=n;                         //指定列数                             
		p=new double*[ROW];               //生成元素为指针,长度为ROW的数组
		for(int i=0;i<ROW;++i)
		{
			p[i]=new double[COL];         //p[i]是长度为COL的数组的指针
			for (int j=0;j<COL;++j)
			{
				p[i][j]=A[i*n+j];          //用一维数组构造二维数
			}	
		}
	}
	~Matrix()//;                     //矩阵的析构函数
	{
		for(int i=0;i<ROW;++i)
		{
			delete []p[i];             //释放数组 
		}
	}
//	void Display()//;                //显示矩阵 
//	{
//		for (int i=0;i<ROW;++i)
//		{
//			for (int j=0;j<COL;++j)
//			{
//				cout<<p[i][j]<<" ";
//			}
//			cout<<endl;
//		}
//	}
//	friend istream& operator >>(istream&,Matrix&);  //输入运算符重载
//	friend ostream& operator <<(ostream&,Matrix&);  //输出运算符重载
	Matrix&operator=(Matrix&s)//;     //赋值运算符重载
	{
		ROW=s.ROW;
		COL=s.COL;
		p=new double*[ROW];               //生成元素为指针,长度为ROW的数组
		for(int i=0;i<ROW;++i)
		{
			p[i]=new double[COL];         //p[i]是长度为COL的数组的指针
			for (int j=0;j<COL;++j)
			{
				p[i][j]=s.p[i][j];          //用一维数组构造二维数
			}	
		}
		return *this;
	}
	Matrix&operator*(Matrix&t)//;       //用友元声明乘法运算符重载
	{
		int m=ROW,n=COL,k=t.COL;
		Matrix result;
		result.ROW=m;result.COL=k;
		result.p=new double*[m];
		for(int i=0;i<m;++i)
		{	
			result.p[i]=new double[k]; 
			for(int j=0;j<k;++j)
			{
				result.p[i][j]=0;
				for(int l=0;l<n;++l)
				result.p[i][j]+=p[i][l]*t.p[l][j];
			}
		}
		ROW=result.ROW;COL=result.COL;
		for (i=0;i<ROW;++i)
		{
			for (int j=0;j<COL;++j)
			{
				p[i][j]=result.p[i][j];
			}
		}
		return *this;	
	}
//	friend void operator+(Matrix&,Matrix&);
   
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -