旋轉矩陣的演算法

2022-08-17 01:57:15 字數 916 閱讀 5330

旋轉矩陣是計算機圖形學裡面的基礎內容。之前我還寫過一篇計算機圖形學基礎知識的總結

操作的步驟可以分為兩部,一是沿正對角線對稱,二是沿水平對稱軸對稱

原圖:

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

==》第一步之後:

1 5 9 13

2 6 10 14

3 7 11 15

4 8 12 16

==》第二步之後:

4 8 12 16

3 7 11 15

2 6 10 14

1 5 9 13

演算法實現

void swap(int& a, int&b)

void rotate(int **a, int n)

}for (int col = 0; col < n; col++)

}}

例項測試

#include

#include

#include

void rotate(int** a, int n);

int main()

rotate(a, 4);

for (int i = 0; i < 4; i++)

system("pause");

return

0;}

多餘的話

有心人可以注意到一點,其實如果把函式rotate(int** a,int n)中的a型別修改為a[4]的話會簡單不少。這樣在測試用例中傳入a[4][4]即可,但是這樣又限制了n。

旋轉矩陣演算法

question 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 void func int n 要求 通過傳入的n,輸出乙個4 4的矩陣,順序如上圖所示.code nxn矩陣 include using namespace std include define max...

推到 旋轉矩陣公式 旋轉矩陣公式推導

1.在二維平面中 如下圖所示,在xoyxoy平面中有一向量op x,y top x,y t,旋轉 角後變為向量op x y top x y t。據圖可得 x op cos y op sin x op cos y op sin 經旋轉 角後有 x op cos op cos cos sin sin x...

原地旋轉矩陣

題目 給定乙個大小為n n的矩陣a,如何在空間複雜度為o 1 的情況下,將矩陣順時針旋轉90度?解析 對於矩陣旋轉,最容易想到的便是利用乙個大小同樣為n n的臨時矩陣t,將原矩陣a i j 放在 t j n i 1 位置處。最後將矩陣t的資料拷貝置矩陣a中,完成矩陣的旋轉。但是這種方法的空間複雜度為...