演算法旋轉矩陣
1. 旋轉矩陣的發明者是誰
旋轉矩陣(Rotation matrix)是在乘以一個向量的時候改變向量的方向但不改變大小的效果的矩陣。旋轉矩陣不包括反演,它不可以把右手坐標系改變成左手坐標系或反之。所有旋轉加上反演形成了正交矩陣的集合。對於3D坐標系,任意兩個坐標系卻不能等價。實際上,存在兩種完全不同的3D坐標系:左手坐標系和右手坐標系。如果同屬於左手坐標系或者右手坐標系,則可以通過旋轉來重合,否則不可以
1,Patric Ostergard
他的主要貢獻是用了全新的模擬退火演算法解決了旋轉矩陣的構造問題,運用他的模擬退火程序,可以很迅速的產生許許多多的旋轉矩陣。
2,Alex Sidorenko
他研究出了許多旋轉矩陣和幾種產生旋轉矩陣的基於禿嶺瀏覽的一般方法。
3,Greg Kuperberg
他注意到線性的[v,t]編碼的補集可以給出區組長度不定的覆蓋設計,而這可以產生對現有的旋轉矩陣的一系列改進。
4,Dan Gordon
他收集的旋轉矩陣是迄今為止最全面,最權威的
2. c語言 旋轉矩陣演算法
#include <stdlib.h>
#include <stdio.h>
#define N 5
int min(int a,int b,int c,int d)
{
a=a<b?a:b;
a=a<c?a:c;
a=a<d?a:d;
return a;
}
int main()
{
int arr[N][N],i,j;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
arr[i][j]=min(i,j,N-1-i,N-1-j);
printf("%d ",arr[i][j]);
}
printf("\n");
}
system("pause");
return 0;
}
3. 計算機圖形學旋轉演算法
繞任意點旋轉的思路是,先將任意旋轉點一起平移到原點,圖像隨旋轉點一起平移,然後根據旋轉矩陣將圖像旋轉,然後再將旋轉點與圖像一起平移回原先的位置.
旋轉矩陣:將所需旋轉角轉換為弧度後算出COS和SIN函數結果並填入矩陣,將旋轉點與組成圖像的所有頂點坐標與矩陣相乘獲得變換後的新坐標.
任意點旋轉的復合矩陣
矩陣相乘的順序很重要,因為矩陣相乘先後結果是不對等的,而矩陣表達上是從右到左的,比如T*R*-T,計算過程相當於T*(R*-T),另外矩陣相乘是採用交叉點乘,而M矩陣也是個3*3的矩陣
得到M復合矩陣後,再將原點與圖像頂點與M相乘,即可得到變換後的新坐標.即P'=M*P
圖像變換演算法其實特簡單,就是cos和sin,然後就是四則運算,再填入矩陣,計算復合矩陣,按現在的教學大綱小學生都會,計算機寫程序一點沒難度,重點其實在圖像變換的理解上.