3D 座標變換 公式 推導

更新 1 [用抽象代數討論仿射變換和仿射空間中的座標變換] ,以下是之前的內容。


下面使用行向量:

e1=(1,0,0)
e2=(0,1,0)
e3=(0,0,1)
i, j, k是三個線性無關的向量2,它們在e1,e2,e3座標系下的座標也記作i,j,k
i’, j’, k’是三個線性無關的向量,它們在e1,e2,e3座標系下的座標也記作i’, j’, k’



denote[ijk]=A,[ijk]=Bdenote \quad \begin{bmatrix}i\\j\\k\end{bmatrix}=A,\begin{bmatrix}i'\\j'\\k'\end{bmatrix}=B
這裏寫圖片描述

已知點P相對於Oijk的座標是(x,y,z)
則點P相對於O’i’j’k’的座標:

(x,y,z)=((x,y,z)A+(OO))B1(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))B1(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\because P =O+(x,y,z)A=O'+(x',y',z')B
(x,y,z)=((x,y,z)A+(OO))B1\therefore(x',y',z')=((x,y,z)A+(O-O'))B^{-1}


##補充
B=AM(M=A1B)B=AM\quad (M=A^{-1}B),即M是把i,j,k變換到i’,j’,k’的變換矩陣
(x,y,z)=((x,y,z)A+(OO))M1A1\therefore(x',y',z')=((x,y,z)A+(O-O'))M^{-1}A^{-1}
特別地,
若O=(0,0,0),i=e1,j=e2,k=e3,則
(x,y,z)=((x,y,z)O))M1andM=B(x',y',z')=((x,y,z)-O'))M^{-1}\quad and \quad M=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)[M10OM11]=(x,y,z,1)(x,y,z,1)\begin{bmatrix} M^{-1}& 0\\ -O'M^{-1}& 1 \\ \end{bmatrix}=(x',y',z',1)
[M10OM11]=[M0O1]1\begin{bmatrix} M^{-1}& 0\\ -O'M^{-1}& 1 \\ \end{bmatrix}=\begin{bmatrix} M& 0\\ O'& 1 \\ \end{bmatrix}^{-1}

換個角度理解

點P不動,把座標架O,i,j,k變換到O’,i’,j’,k’,則變換矩陣是(M0O1)\begin{pmatrix} M & 0 \\ O' & 1 \end{pmatrix}, M=B,
就相當於 座標架不動,點P逆着上述變換,變換到新座標。

變換的兩種方式

①先原地變換座標架,再平移座標架
[B001][I0O1]=[B0O1]\begin{bmatrix} B &0 \\ 0&1 \\ \end{bmatrix} \begin{bmatrix} I &0 \\ O' & 1 \\ \end{bmatrix} =\begin{bmatrix} B &0 \\ O' &1 \\ \end{bmatrix}
②先平移座標架,再相對平移之後的原點變換座標架
[I0O1]X=[B0O1]X=[B0OOB1]\begin{bmatrix} I &0 \\ O' & 1 \\ \end{bmatrix}X=\begin{bmatrix} B &0 \\ O' &1 \\ \end{bmatrix}\qquad X=\begin{bmatrix} B &0 \\ O'-O'B &1 \\ \end{bmatrix}
X可以看成先平移回原點,相對原點 原地變換 座標架,再平移過去:
X=[B0OB1][I0O1]X=\begin{bmatrix} B &0 \\ -O'B &1 \\ \end{bmatrix}\begin{bmatrix} I &0 \\ O'&1 \\ \end{bmatrix}
[B0OB1]=[I0O1][B001]\begin{bmatrix} B &0 \\ -O'B &1 \\ \end{bmatrix}=\begin{bmatrix} I &0 \\ -O' &1 \\ \end{bmatrix}\begin{bmatrix} B &0 \\ 0&1 \\ \end{bmatrix}

注意到 X 與 (B001)\begin{pmatrix} B & 0 \\ 0 & 1 \end{pmatrix} 是相似矩陣,正是同一(4維的)線性變換在不同基下的座標表示。3


  1. Someone in the comments missed it. 所以加粗了。 ↩︎

  2. @評論,不要求 i,j,k 的單位長度和正交性。 ↩︎

  3. http://blog.csdn.net/u010476094/article/details/50551014 ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章