3D 坐标变换 公式 推导

Posted cynchanpin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3D 坐标变换 公式 推导相关的知识,希望对你有一定的参考价值。

[ 更新 ]更好的方法见[用抽象代数讨论仿射变换和仿射空间中的坐标变换] ,以下是之前的内容。


以下的推导 结论是正确的,可是过程有点懵。


以下使用行向量:
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,???ijk???=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?OM?101]=(x,y,z,1)

[M?1?OM?101]=[MO01]?1

换个角度理解

点P不动。把坐标架O,i,j,k变换到O’,i’,j’,k’,则变换矩阵是(MO01), M=B,
就相当于 坐标架不动,点P逆着上述变换,变换到新坐标。

变换的两种方式

①先原地变换坐标架,再平移坐标架

[B001][IO01]=[BO01]

②先平移坐标架。再相对平移之后的原点变换坐标架
[IO01]X=[BO01]X=[BO?OB01]

X能够看成先平移回原点,相对原点 原地变换 坐标架,再平移过去:
X=[B?OB01][IO01]

[B?OB01]=[I?O01][B001]

注意到 X 与 [B001] 是类似矩阵,正是同一(4维的)线性变换在不同基下的坐标表示。1




































以上是关于3D 坐标变换 公式 推导的主要内容,如果未能解决你的问题,请参考以下文章

3d变换基础:平移旋转缩放(仿射变换)详解——公式推导

三维坐标变换矩阵的推导过程

相机标定简介与MatLab相机标定工具箱的使用(未涉及原理公式推导)

∑GL-透视投影矩阵的推导

∑GL-透视投影矩阵的推导

向量旋转公式: