1. 程式人生 > >三維座標系的旋轉矩陣

三維座標系的旋轉矩陣

在進行影象程式開發的過程中,免不了要對影象做各種變換處理。有的時候變換可能比較複雜,比如平移之後又旋轉,旋轉之後又平移,又縮放。

直接用公式計算,不但複雜,而且效率低下。這時可以藉助變換矩陣和矩陣乘法,將多個變換合成一個。 最後只要用一個矩陣對每個點做一次處理就可以得到想要的結果。

 另外,矩陣乘法一般有硬體支援,比如3D 圖形加速卡,處理3D變換中的大量矩陣運算,比普通CPU 要快上1000倍。

下面是3類基本的3D圖形變換: (2D圖形的變換相當於在3D的變換上減少一個維度即可)

一、平移:

設某點向x方向移動 dx, y方向移動 dy ,z方向移動dz, [x,y,z]為變換前座標, [X,Y,Z]為變換後坐標。

則 X = x+dx;  Y = y+dy; Z =z+dz

以矩陣表示:

其中即為平移矩陣。

二、旋轉:

設某點與原點連線和X軸夾角為度,以原點為圓心,繞z軸逆時針旋轉度  , 原點與該點連線長度為R, [x,y,z]為變換前座標, [X,Y,Z]為變換後坐標。