這兩天圖形學的實驗對三維圖形進行放縮平移投影,裡面需要用到一些矩陣的運算,於是需要動手寫乙個矩陣運算的類cmatrix(mfc中進行開發所以第乙個字母是c)。
最好做的和普通的數字預算一樣簡單。
由於在mfc程式中圖形變化是不斷進行的,需要大量矩陣預算,並且程序會一直保持執行狀態,所以矩陣預算要進行手動記憶體釋放,並且不要進行無用操做
例如a+b,a*b之類的操作,因為這些運算都會在堆上生成乙個額外的物件,正確的操作應該是c=a+b,並且在必要的時候將c釋放掉
可以直接輸入輸出矩陣例如cout<>b,直接訪問矩陣r行c列上的值例如a[r][c],常用的運算子都進行了過載例如自增自減;
沒有實現矩陣的除法github位址
標頭檔案 cmatrix.h:
#pragma once
#include
using namespace std;
class cmatrix
//過載輸入輸出
friend ostream & operator<<(ostream &out, cmatrix &obj);
friend istream & operator >> (istream &in, cmatrix &matrix);
void setrow(int row, int v);
//將第row行賦值v
void setcolumn(int column, int v);
//將第column列賦值v
void setall(int v);
//將矩陣全部賦值為v
inline int** getarr() //獲取二維陣列頭指標
cmatrix& turn(); //轉置矩陣
void freearr(int** arr,int r);};
原始檔 #include "stdafx.h"
#include "cmatrix.h"
cmatrix::cmatrix()
cmatrix::cmatrix(const cmatrix & matrix)
cmatrix::cmatrix(int n)
cmatrix::cmatrix(int n, int m)
cmatrix::~cmatrix()
cmatrix & cmatrix::operator+(const cmatrix & matrix)
cmatrix & cmatrix::operator-(const cmatrix & matrix)
cmatrix & cmatrix::operator*(const cmatrix & matrix)
cmatrix & cmatrix::operator*(int v)
cmatrix & cmatrix::operator/=(int v)
cmatrix & cmatrix::operator/(int v)
cmatrix& cmatrix::operator=(const cmatrix & matrix)
cmatrix& cmatrix::operator +=(const cmatrix & matrix)
cmatrix & cmatrix::operator*=(const cmatrix & matrix)
cmatrix& cmatrix::operator -=(const cmatrix & matrix)
cmatrix& cmatrix::operator*=(int v)
bool cmatrix::operator==(const cmatrix & matrix)
void cmatrix::setrow(int row, int v)
void cmatrix::setcolumn(int column, int v)
void cmatrix::setall(int v)
cmatrix & cmatrix::turn()
ostream & operator<<(ostream & out, cmatrix & matrix)
return out;
}istream & operator>>(istream & in, cmatrix & matrix)
void cmatrix::freearr(int** arr,int r)
在C 中實現矩陣運算
在c 中實現矩陣運算 環境 主機 xp 開發環境 vs2008 功能 在c 中實現矩陣運算 源 using system using system.collections.generic using system.componentmodel using system.data using syst...
矩陣的基本運算(C實現)
使用函式來實現對矩陣的基本輸入輸出以及求和 相乘等運算。include define n 10 void print matrix float a,int m,int n 列印矩陣 void input matrix float a,int m,int n 輸入矩陣 void multiply ma...
C語言實現矩陣運算
最近在學習機械人運動控制學,用到了矩陣運算,並用c語言實現之 首先宣告該 在ubuntu18.04下執行通過,如若在windows下執行失敗請考慮編譯器版本問題 乙個矩陣最基本的有行數line,列數row和 行數乘以列數個資料 row line 所以用乙個最基本的結構體變數來表示乙個矩陣 矩陣的結構...