旋轉矩陣求旋轉角度 矩陣旋轉變換推導

2021-10-12 17:10:45 字數 1811 閱讀 1802

矩陣旋轉變換,就是說給定乙個角度和點,我們將點繞著乙個座標軸旋轉。在旋轉過程中發生變化的總是x,y,z三個座標裡面的其中兩個,而不讓第三個座標值變化。這意味著,旋轉路徑總在三個座標軸平面中的乙個之中:繞 z 軸的是 xy 面、繞 x 軸的是 yz 面、繞 y 軸的是 xz 面。還有許多複雜的旋轉變換可以讓你繞任意乙個向量旋轉,但是眼下我們並不需要討論這些。

讓我們概括地定義這個問題這個問題,看看下面的這個圖:

我們想沿著圓圈從(x1,y1)移動到(x2,y2)。也就是說我們讓向量(x1,y1)轉過 a2 角度。我們假設這個圓的半徑是 1。這意味著下列成立:

x1 = cos(a1)

y1 = sin(a1)

x2 = cos(a1+a2)

y2 = sin(a1+a2)

我們用下面的三角恒等式來產生 x2 和 y2 :

cos(a+b) = cos(a)*cos(b) - sin(a)*sin(b)

sin(a+b) = sin(a)*cos(b) + cos(a)*sin(b)

通過面的式子我們可以推導出:

x2 = cos(a1+a2) = cos(a1)*cos(a2) - sin(a1)*sin(a2) = x1*cos(a2) - y1*sin(a2)

y2 = sin(a1+a2) = sin(a1)*cos(a2) + cos(a1)*sin(a2) = y1*cos(a2) + x1*sin(a2)

在上面的圖中我們看向 xy 平面,z 軸指向螢幕內部!如果 x 分量和 y 分量是四維向量的一部分,那樣上面的等式可以寫成下面的矩陣形式(不影響 z 和 w )為:

如果我們想建立乙個繞著 x 軸或者繞著 y 軸的旋轉變換矩陣,那麼方程基本相同但是矩陣的安排卻略有不同!這是繞 x 軸旋轉的矩陣:

繞 y 軸的旋轉矩陣為:

旋轉矩陣怎麼推導 矩陣旋轉變換推導

矩陣旋轉變換,就是說給定乙個角度和點,我們將點繞著乙個座標軸旋轉。在旋轉過程中發生變化的總是 三個座標裡面的其中兩個,而不讓第三個座標值變化。這意味著,旋轉路徑總在三個座標軸平面中的乙個之中 繞 z 軸的是 xy 面 繞 x 軸的是 yz 面 繞 y 軸的是 xz 面。還有許多複雜的旋轉變換可以讓你...

座標變換 旋轉矩陣

關於最常見的繞座標軸旋轉,可以看看前一篇 幾何變換詳解。繞任意軸旋轉的情況比較複雜,主要分為兩種情況,一種是平行於座標軸的,一種是不平行於座標軸的,對於平行於座標軸的,我們首先將旋轉軸平移至與座標軸重合,然後進行旋轉,最後再平移回去。整個過程就是 對於不平行於座標軸的,可按如下方法處理。該方法實際上...

由旋轉矩陣求旋轉中心

在影象的復合變化過程中,通常會用到matrix矩陣,一般的過程是先構造仿射變換矩陣,然後對影象進行仿射變換,如 圍繞點 100,100 旋轉30度 sin 30 0.5 cos 30 0.866 則構造過程如下 float f matrix new matrix matrix.setvalues f...