座標的平移,旋轉,縮放矩陣

2021-09-21 06:47:58 字數 1522 閱讀 7969

1    0    0

0    1    0    

dx  dy   1

d2 = d1*m

設某點與原點連線和x軸夾角為b度,以原點為圓心,逆時針轉過a度  , 原點與該點連線長度為r, [x,y]為變換前座標, [x,y]為變換後坐標。

x = rcos(b) ; y = rsin(b);

x = rcos(a+b) = rcosacosb - rsinasinb = xcosa - ysina; (合角公式)

y = rsin(a+b) = rsinacosb + rcosasinb = xsina + ycosa ;

繞原點的旋轉矩陣表示:

cosa   sina  0

[x, y, 1] = [x, y, 1][-sina  cosa  0  ] 

0        0     1

cosa   sina  0

-sina  cosa  0  為旋轉變換矩陣。

0       0     1 

設某點座標,在x軸方向擴大 sx倍,y軸方向擴大 sy倍,[x,y]為變換前座標, [x,y]為變換後坐標。

x = sx*x; y = sy*y;

則用矩陣表示:

sx    0    0

[x, y, 1] = [x, y, 1][ 0    sy    0  ] ; 

0     0     1

sx    0    0

0    sy    0  即為縮放矩陣。 

0     0     1

1    0    0    0

0    1    0    0

0     0   1    0

dx   dy  dz  1

sx    0    0    0

0     sy   0    0

0     0     sy  0

0     0     0    1

繞x軸旋轉θ度

1     0        0         0

0     cosθ   sinθ    0

0     -sinθ   cosθ   0

0     0         0        1

繞y軸旋轉θ度

cosθ     0        -sinθ     0

0          1        0           0

sinθ      0       cosθ      0

0           0       0           1

繞z軸旋轉θ度

cosθ   sinθ      0         0

-sinθ   cosθ     0         0 

0         0          1         0

0         0          0         1

參考:二維幾何變換

矩陣運算——平移,旋轉,縮放

三維座標變換原理-平移, 旋轉, 縮放

矩陣運算 平移,旋轉,縮放

平時開發程式,免不了要對影象做各種變換處理。有的時候變換可能比較複雜,比如平移之後又旋轉,旋轉之後又平移,又縮放。直接用公式計算,不但複雜,而且效率低下。這時可以借助變換矩陣和矩陣乘法,將多個變換合成乙個。最後只要用乙個矩陣對每個點做一次處理就可以得到想要的結果。另外,矩陣乘法一般有硬體支援,比如3...

OpenGL座標變換 平移,縮放與旋轉

opengl座標變換 平移,縮放與旋轉 opengl有內建的座標系,事實上opengl有兩套座標系,乙個座標系被稱為眼睛座標 eye coordinate system 簡稱ecs opengl還有一套座標,被稱為 object coordinate system 簡稱ocs 而這個才是更為重要的,...

變換(旋轉 縮放 平移)

scale 縮放 rotate 旋轉 shear 裁切 為什麼 是什麼 affifine map 仿射變換 引入齊次座標後的二維變換 復合變換 旋轉 4.1 尤拉角 為什麼 是什麼 4.2 萬向節死鎖 轉動的術語 出現死鎖 這裡桶滾自由度丟失了,只有兩個自由度,無法表示需要三個自由度的旋轉,產生了死...