更新 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’
d e n o t e [ i j k ] = A , [ i ′ j ′ k ′ ] = B denote \quad \begin{bmatrix}i\\j\\k\end{bmatrix}=A,\begin{bmatrix}i'\\j'\\k'\end{bmatrix}=B 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 (x',y',z')=((x,y,z)A+(O-O'))B^{-1} (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 (x',y',z')=((x,y,z)-O'))B^{-1} (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 ∵P=O+(x,y,z)A=O′+(x′,y′,z′)B
∴ ( x ′ , y ′ , z ′ ) = ( ( x , y , z ) A + ( O − O ′ ) ) B − 1 \therefore(x',y',z')=((x,y,z)A+(O-O'))B^{-1} ∴(x′,y′,z′)=((x,y,z)A+(O−O′))B−1
##补充
记 B = A M ( M = A − 1 B ) B=AM\quad (M=A^{-1}B) B=AM(M=A−1B),即M是把i,j,k变换到i’,j’,k’的变换矩阵,
∴ ( x ′ , y ′ , z ′ ) = ( ( x , y , z ) A + ( O − O ′ ) ) M − 1 A − 1 \therefore(x',y',z')=((x,y,z)A+(O-O'))M^{-1}A^{-1} ∴(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 − 1 a n d M = B (x',y',z')=((x,y,z)-O'))M^{-1}\quad and \quad M=B (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 0 − O ′ M − 1 1 ] = ( x ′ , y ′ , z ′ , 1 ) (x,y,z,1)\begin{bmatrix} M^{-1}& 0\\ -O'M^{-1}& 1 \\ \end{bmatrix}=(x',y',z',1) (x,y,z,1)[M−1−O′M−101]=(x′,y′,z′,1)
[ M − 1 0 − O ′ M − 1 1 ] = [ M 0 O ′ 1 ] − 1 \begin{bmatrix} M^{-1}& 0\\ -O'M^{-1}& 1 \\ \end{bmatrix}=\begin{bmatrix} M& 0\\ O'& 1 \\ \end{bmatrix}^{-1} [M−1−O′M−101]=[MO′01]−1
点P不动,把坐标架O,i,j,k变换到O’,i’,j’,k’,则变换矩阵是 ( M 0 O ′ 1 ) \begin{pmatrix} M & 0 \\ O' & 1 \end{pmatrix} (MO′01), M=B,
就相当于 坐标架不动,点P逆着上述变换,变换到新坐标。
①先原地变换坐标架,再平移坐标架
[ B 0 0 1 ] [ I 0 O ′ 1 ] = [ B 0 O ′ 1 ] \begin{bmatrix} B &0 \\ 0&1 \\ \end{bmatrix} \begin{bmatrix} I &0 \\ O' & 1 \\ \end{bmatrix} =\begin{bmatrix} B &0 \\ O' &1 \\ \end{bmatrix} [B001][IO′01]=[BO′01]
②先平移坐标架,再相对平移之后的原点
变换坐标架
[ I 0 O ′ 1 ] X = [ B 0 O ′ 1 ] X = [ B 0 O ′ − O ′ B 1 ] \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} [IO′01]X=[BO′01]X=[BO′−O′B01]
X可以看成先平移回原点,相对原点 原地变换 坐标架,再平移过去:
X = [ B 0 − O ′ B 1 ] [ I 0 O ′ 1 ] X=\begin{bmatrix} B &0 \\ -O'B &1 \\ \end{bmatrix}\begin{bmatrix} I &0 \\ O'&1 \\ \end{bmatrix} X=[B−O′B01][IO′01]
[ B 0 − O ′ B 1 ] = [ I 0 − O ′ 1 ] [ B 0 0 1 ] \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} [B−O′B01]=[I−O′01][B001]
注意到 X 与 ( B 0 0 1 ) \begin{pmatrix} B & 0 \\ 0 & 1 \end{pmatrix} (B001) 是相似矩阵,正是同一(4维的)线性变换在不同基下的坐标表示。3
Someone in the comments missed it. 所以加粗了。 ↩︎
@评论,不要求 i,j,k 的单位长度和正交性。 ↩︎
http://blog.csdn.net/u010476094/article/details/50551014 ↩︎