關於矩陣的經典操作1,那就是座標的變換
通過二維空間或者三維空間,給定n個點,m 個操作,構造o(m+n)的演算法輸出m個操作後各點的位置,操作有平移、縮放、翻轉和旋轉
參考:十個利用矩陣乘法解決的經典題目
在三維空間中就是擴張一下就可以了,只是在三維空間的旋轉,如果給定的是角度,那麼就要注意公式如下:
因此要注意一下,這是針對角度和座標點
hdu3320
題目連線:
題意描述:給定座標(1,1,,,1),求經過若干操作後的座標位置
在這兒先是把初始點構造單位矩陣,在沒進過乙個操作就利用矩陣來實現
#include#include#include#include#include#include#include#include#define maxn 10000
using namespace std;
struct matrix
matrix operator +(const matrix &b)const
}return c;
}matrix operator *(const matrix &b)const}}
return c;
}};int t;
double x,y,z,angle;
char str1[100],str2[100];
double num[4];
int main()
; scanf("%s",str1);
scanf("%s",str2);
while(str2[2]!='e')
;b=b*temp;
break;
}case 's':
;b=b*temp;
break;
}case 'r':
;b=b*temp;
break;
}case 'v':
}scanf("%s",str2);
}printf("%.1lf %.1lf %.1lf\n",
b.a[0][0]*num[0]+b.a[0][1]*num[1]+b.a[0][2]*num[2]+b.a[0][3],
b.a[1][0]*num[0]+b.a[1][1]*num[1]+b.a[1][2]*num[2]+b.a[1][3],
b.a[2][0]*num[0]+b.a[2][1]*num[1]+b.a[2][2]*num[2]+b.a[2][3]);
}return 0;
}
hdu4087
題目連線:
這個題比較蛋疼,主要是讀入資料比較麻煩,其他的操作沒啥
在讀入時只要用額外的陣列來輔助
#include#include#include#include#include#include#include#include#define maxn 10000
using namespace std;
const double pi=acos(-1.0);
const double eps = 1e-6;
int sig(double d)
struct matrix
void clear()
void transose()//轉置
}matrix operator +(const matrix &b)const
}return c;
}matrix operator *(const matrix &b)const}}
return c;
}};matrix operator ^(matrix a,int b)
a=a*a;
b>>=1;
}return ans;
}int repeat[55555];
matrix m[55555];
int main()
}if (op == "rotate")
if (op == "repeat")
if (op == "translate")
if (op == "scale")
}for (int i = 0; i < n; i++)
for (int i = 0; i < 4; i++)
if (sig(ret.mat[0][i]) == 0) ret.mat[0][i] = 0.0;
printf("%.2f %.2f %.2f\n", ret.mat[0][0], ret.mat[0][1], ret.mat[0][2]);
}puts("");
}return 0;
}
這個題目也可以用stack來模擬資料的讀入過程,只是這樣做比較麻煩 矩陣與矩陣的相關操作(1
就是取i 和 j中的較大者進行個數計算。壓縮後的一維陣列大小為 n n 1 2 在n n的矩陣中,表示兩個對稱點是 i 表示行,j 表示列 num i n j 與 num j n i 如果這個對稱矩陣已經被表示為一維陣列儲存num n n 那麼我們如何在一維陣列中進行轉置的運算呢?當然在一維陣列中,...
MatLab學習1 矩陣操作
1 簡單矩陣構造 a 1,2,3 構造乙個1x3的矩陣,各元素為1,2,3 或者a 1 2 3 使用空格 b 1,2,3 7,4,9 兩行三列矩陣b 2 特殊矩陣構造 1 ones函式 a ones n 構造nxn的全1矩陣 b ones m,n 產生mxn的全1矩陣 2 zeros 類似的有 a ...
MATLAB矩陣基本操作1
matlab 矩陣操作 結構矩陣 和單元矩陣 結構矩陣 格式為 結構矩陣元素.成員名 表示式a 1 x1 10 a 1 x2 liu a 1 x3 10 21 34 78 a 2 x1 11 a 2 x2 xia a 2 x3 11 121 34 78 a 3 x1 12 a 3 x2 cai a ...