更新 [用抽象代數討論仿射變換和仿射空間中的座標變換] ,以下是之前的內容。
下面使用行向量:
e1=(1,0,0)
e2=(0,1,0)
e3=(0,0,1)
i, j, k是三個線性無關的向量,它們在e1,e2,e3座標系下的座標也記作i,j,k
i’, j’, k’是三個線性無關的向量,它們在e1,e2,e3座標系下的座標也記作i’, j’, k’
denote⎣⎡ijk⎦⎤=A,⎣⎡i′j′k′⎦⎤=B
已知點P相對於Oijk的座標是(x,y,z)
則點P相對於O’i’j’k’的座標:
(x′,y′,z′)=((x,y,z)A+(O−O′))B−1
若B是正交矩陣,就不用求逆了,求轉置就是。
特別地,
若O=(0,0,0),i=e1,j=e2,k=e3,則
(x′,y′,z′)=((x,y,z)−O′))B−1
##推導
設點P相對於O’i’j’k’的座標是(x’,y’,z’)
∵P=O+(x,y,z)A=O′+(x′,y′,z′)B
∴(x′,y′,z′)=((x,y,z)A+(O−O′))B−1
##補充
記 B=AM(M=A−1B),即M是把i,j,k變換到i’,j’,k’的變換矩陣,
∴(x′,y′,z′)=((x,y,z)A+(O−O′))M−1A−1
特別地,
若O=(0,0,0),i=e1,j=e2,k=e3,則
(x′,y′,z′)=((x,y,z)−O′))M−1andM=B
應用
實際應用中,用到的一般都是O=(0,0,0),i=e1,j=e2,k=e3的特殊情況,
這是因爲:問題在描述O’i’j’k’座標的時候一般都是相對於Oikj而言的;
這裏沒有絕對的座標系,仿射空間中任何一個點都看以看成(0,0,…0),任意一組基都可以看成{(1,0,…0), (0,1,…0), (0,0,…1)}。
(x,y,z,1)[M−1−O′M−101]=(x′,y′,z′,1)
[M−1−O′M−101]=[MO′01]−1
換個角度理解
點P不動,把座標架O,i,j,k變換到O’,i’,j’,k’,則變換矩陣是(MO′01), M=B,
就相當於 座標架不動,點P逆着上述變換,變換到新座標。
變換的兩種方式
①先原地變換座標架,再平移座標架
[B001][IO′01]=[BO′01]
②先平移座標架,再相對平移之後的原點
變換座標架
[IO′01]X=[BO′01]X=[BO′−O′B01]
X可以看成先平移回原點,相對原點 原地變換 座標架,再平移過去:
X=[B−O′B01][IO′01]
[B−O′B01]=[I−O′01][B001]
注意到 X 與 (B001) 是相似矩陣,正是同一(4維的)線性變換在不同基下的座標表示。