矩阵乘法运算test
2013-03-19 22:14
471 查看
//学习CG,刚好想到自己动手实现下矩阵变换吧 //just test and test
#include "gl/glut.h" #include <iostream> #include <cmath> using namespace std; #define MAX 3 class Matrix { public: int row; int col; double num[MAX][MAX]; Matrix() { for(int i=0;i<MAX;i++) for(int j=0;j<MAX;j++) num[i][j]=0; row=MAX; col=MAX; } }; // A * B Matrix MultiMatrix(Matrix &A, Matrix &B) { Matrix result; result.row = A.row; result.col = B.col; for(int i=0;i<result.row;i++) for(int j=0;j<result.col;j++) for(int k=0;k<A.col;k++) result.num[i][j] += A.num[i][k] * B.num[k][j]; return result; } //缩放变换 Matrix scale(Matrix &A,double x,double y) { Matrix s; s.num[0][0]=x; s.num[1][1]=y; s.num[2][2]=1; return MultiMatrix(s,A); } //逆时针旋转变换 Matrix rotate(Matrix &A,double angle) { Matrix r; r.num[0][0]= cos(angle); r.num[0][1]= -sin(angle); r.num[1][0]= sin(angle); r.num[1][1]= cos(angle); r.num[2][2]= 1; return MultiMatrix(r,A); } //平移变换 Matrix translation(Matrix &A,double x,double y) { Matrix t; t.num[0][0]=1; t.num[1][1]=1; t.num[2][0]=-x; t.num[2][1]=-y; t.num[2][2]=1; return MultiMatrix(t,A); } int main(int argc,char *argv[]) { //glutInit(&argc,argv); //glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE); //TEST FOR MATRIX // A:3*2 b:2*3 Matrix A,B; A.row=3; A.col=2; B.row=2; B.col=3; for(int i=0;i<3;i++) for(int j=0;j<2;j++) cin>>A.num[i][j]; for(int i=0;i<2;i++) for(int j=0;j<3;j++) cin>>B.num[i][j]; Matrix C = MultiMatrix(A,B); for(int i=0;i<C.row;i++) { for(int j=0;j<C.col;j++) cout<<C.num[i][j]<<" "; cout<<endl; } char a; cin>>a; return 0; }
相关文章推荐
- 菜鸟学编程之二:C对矩阵进行乘法和转置运算
- Programming Ability Test学习 3-04. 一元多项式的乘法与加法运算(20)
- 通过矩阵乘法看内存访问对CPU运算速度的影响
- 利用CUDA的矩阵乘法1 <利用 Kahan's Summation Formula 来提高CUDA 的浮点数运算精确度>
- 线性代数(四) :矩阵乘法的性质与分块矩阵的运算
- java第二周作业--实现矩阵的加法和乘法运算
- 稀疏矩阵的各种基本运算并加法乘法
- 线性代数·矩阵的加法减法乘法运算简单实现
- 稀疏矩阵存储、转置、乘法运算
- 用verilog表示两个4x4矩阵的乘法运算?及单个矩阵的求逆
- 杭电 1082【矩阵乘法次数的运算】
- 稀疏矩阵存储、转置、乘法运算
- 矩阵的乘法运算
- cublas中执行矩阵乘法运算的函数 首先要注意的是cublas使用的是以列为主的存储方式,和c/c++中的以行为主的方式是不一样的。处理方法可参考下面的注释代码
- 8. 稀疏矩阵的乘法运算
- 7. 稀疏矩阵的乘法运算
- 数据结构之矩阵的乘法运算
- 脉动阵列在二维矩阵乘法及卷积运算中的应用
- java第七周封装一类对矩阵操作的对象,该类对象能够对矩阵进行运算,如矩阵中数据的位置变换功能、矩阵的加法功能、矩阵的乘法功能。
- 计算矩阵运算的乘法次数