轉換矩陣就是有一個矩陣轉換為另一個矩陣時候乘的乘數》
1 轉換矩陣的原理
OpenGL中的轉換矩陣是這樣定義的:
[Xx, Yx, Zx, Tx]
[Xy, Yy, Zy, Ty]
M = [Xz, Yz, Zz, Tz]
[0, 0, 0, 1 ]
其實我們可以這麼理解這個變換矩陣, 它表示了一個區域性座標系, 這個區域性座標系,是把世界座標系的原點移到(Tx, Ty, Tz),把X軸轉到(Xx, Xy, Xz), Y軸轉到(Yx, Yy, Yz),Z軸轉到(Zx, Zy, Zz)而形成的。用它來變換一個世界座標系中的點V, 就是得到這個區域性座標系中的點。
要證明這一點很容易, 我們從可以從更通用的方面來考慮,假設我們用矩陣Ma來表示座標系a, Mb來表示座標系b, Mt表示從a到b的轉換, 那麼:
Mt * Ma = Mb
Mt * Ma * (Ma)^-1 = Mb * (Ma)^-1
矩陣雖然不符合乘法交換律,但其符合乘法結合律, 於是:
Mt* (Ma * (Ma)^-1) = Mb * (Ma)^-1
Mt = Mb * (Ma)^-1
這就是a到b轉換矩陣的表示式,現在我們從世界座標系轉換到區域性座標系,a表示的世界座標系是個單位矩陣,所以:
Mt = Mb
即區域性座標系的矩陣表示就是從世界座標系到區域性座標系的轉換矩陣。
我們再進一步分析,如果我們用這個矩陣來變換一個點V(Vx, Vy, Vz, 1),需要把這個點右乘變換矩陣
[Xx, Yx, Zx, Tx] [Vx]
[Xy, Yy, Zy, Ty] [Vy]
V" = M*T = [Xz, Yz, Zz, Tz] * [Vz]
[0, 0, 0, 1 ] [1 ]
對於V變換後的x分量,Vx" = Xx*Vx + Yx*Vy + Zx*Vz + Tx,我們可以發現影響V的x分量的只有X,Y,Z軸旋轉的x分量和平移的x分量,對於V的y, z分量也是同樣道理。
轉換矩陣就是有一個矩陣轉換為另一個矩陣時候乘的乘數》
1 轉換矩陣的原理
OpenGL中的轉換矩陣是這樣定義的:
[Xx, Yx, Zx, Tx]
[Xy, Yy, Zy, Ty]
M = [Xz, Yz, Zz, Tz]
[0, 0, 0, 1 ]
其實我們可以這麼理解這個變換矩陣, 它表示了一個區域性座標系, 這個區域性座標系,是把世界座標系的原點移到(Tx, Ty, Tz),把X軸轉到(Xx, Xy, Xz), Y軸轉到(Yx, Yy, Yz),Z軸轉到(Zx, Zy, Zz)而形成的。用它來變換一個世界座標系中的點V, 就是得到這個區域性座標系中的點。
要證明這一點很容易, 我們從可以從更通用的方面來考慮,假設我們用矩陣Ma來表示座標系a, Mb來表示座標系b, Mt表示從a到b的轉換, 那麼:
Mt * Ma = Mb
Mt * Ma * (Ma)^-1 = Mb * (Ma)^-1
矩陣雖然不符合乘法交換律,但其符合乘法結合律, 於是:
Mt* (Ma * (Ma)^-1) = Mb * (Ma)^-1
Mt = Mb * (Ma)^-1
這就是a到b轉換矩陣的表示式,現在我們從世界座標系轉換到區域性座標系,a表示的世界座標系是個單位矩陣,所以:
Mt = Mb
即區域性座標系的矩陣表示就是從世界座標系到區域性座標系的轉換矩陣。
我們再進一步分析,如果我們用這個矩陣來變換一個點V(Vx, Vy, Vz, 1),需要把這個點右乘變換矩陣
[Xx, Yx, Zx, Tx] [Vx]
[Xy, Yy, Zy, Ty] [Vy]
V" = M*T = [Xz, Yz, Zz, Tz] * [Vz]
[0, 0, 0, 1 ] [1 ]
對於V變換後的x分量,Vx" = Xx*Vx + Yx*Vy + Zx*Vz + Tx,我們可以發現影響V的x分量的只有X,Y,Z軸旋轉的x分量和平移的x分量,對於V的y, z分量也是同樣道理。