[ 更新 ]更好的方法見[用抽象代數讨論仿射變換和仿射空間中的坐标變換] ,以下是之前的内容。
以下的推導 結論是正确的,可是過程有點懵。
以下使用行向量:
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
特别地。
(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]
- javascript:void(0) ↩