1.世界坐標空間與觀察坐標系之間的轉換
已知:觀察坐標系相對世界坐標系的u,v,w軸與起點q,將世界坐標系中一點變換到觀察坐標系
使用左手坐標系推導
- u = ( ux , uy , uz , 0 )
- v = ( vx , vy , vz , 0 )
- w = (wx , wy , wz , 0 )
- q = ( qx , qy , qz , 1 )
觀察坐標系中的點可以表示為:
p = au+bv+cw+q
即為 (a,b,c,1)
展開上述公式
p = a * ux * x + a * uy * y + a * uz * z + 0 * w
b * vx * x + b * vy * y + b * vz * z + 0 * w
c * wx * x + c * wy * y + c * wz * z + 0 * w
1 * qx * x + 1 * qy * y + 1 * qz * z + 1 * w
= ( a * ux + b * vx + c * wx + qx) x+
( a * uy + b * vy + c * wy + qy) y+
( a * uz + b * vz + c * wz + qz) z +
w
ux uy uz 0 x
= ( a , b , c , 1 ) ( vx vy vz 0 )( y )
wx wy wz 0 z
qx qy qz 1 w
世界坐標系中的點可以表示為
x
p' = a'x+b'y+c'z + w = ( a', b', c' , 1) *( y )
z
w
p與p'是同一點,只是表示相對坐標系不同,因此有
p = p'





通常情況下,我們是確保u,v,w相互垂直,因此有第二步的等式,因為其為正交矩陣,矩陣的逆等於矩陣的轉置。
因此我們得到世界坐標到觀察坐標系之間的轉化

其中[a b c 1]表示觀察坐標系中的點
[a' b' c' 1]表示世界坐標系中的點
- u = ( ux , uy , uz , 0 )
- v = ( vx , vy , vz , 0 )
- w = (wx , wy , wz , 0 )
- q = ( qx , qy , qz , 1 )
u,v,w分別為觀察坐標系的x,y,z軸在世界坐標系的表示,q表示觀察坐標系原點在世界坐標系中的表示。

在游戲場景中,我們的攝像機通常會給出一個指點的位置Q,看向目標位置T,

通過上述三個公式,u,v,w可以輕易的計算出來,整個變化矩陣也就推導出來了。
參考資料: