点和向量在坐标系间的变换

记录一下对"点和向量在不同坐标系间变换"的理解。

问题1:点在不同坐标系间变换

已知坐标系A以及坐标系中一点C(x,y,z),另一个坐标系B在A中的零点B0(Xo,Yo,Zo)以及坐标系B在A中的x,y,z三方向(Axx,Axy,Axz)、(Ayx,Ayy,Ayz)、(Azx,Azy,Azz)。

求点C在B中的坐标D(Xb,Yb,Zb)?

C(x,y,z)代表的意思是 向量 (C(x,y,z)-(0,0,0)) 在X轴(1,0,0),y轴(0,1,0),Z轴(0,0,1)上的投影。

而投影就是向量的点乘

Dot(E(X1,Y1,Z1),F(X2,Y2,Z2)) =( X1X2+Y1Y2+Z1Z2) =|E|*|F|*Cos(夹角)

也就是

x = Dot(C,X)  y = Dot(C,y) z =Dot(C,z)
以此类推求C在B中的坐标就变成了 向量(C-B0)在B的三个坐标轴上的投影。

(Dot((C-B0),(Axx,Axy,Axz),Dot((C-Bo),(Ayx,Ayy,Ayz)),Dot((C-B0),(Azx,Azy,Azz)))

进一步也就变成了

(Acbx*Axx+Acby*Axy+Acbz*Axz,Acbx*Ayx+Acby*Ayy+Acbz*Ayz,Acbx*Azx+Acby*Azy+Acbz*Azz)

着就是C在B中的坐标(Xb,Yb,Zb)

此结果正好与下面矩阵乘法结果相同。

\begin{bmatrix} Axx&Axy &Axz \\ Ayx&Ayy &Ayz \\ Azx&Azy &Azz \end{bmatrix}\begin{bmatrix} Acbx\\ Acby\\ Acbz \end{bmatrix}

所以矩阵就和坐标变换挂钩。

\begin{bmatrix} Axx&Axy &Axz \\ Ayx&Ayy &Ayz \\ Azx&Azy &Azz \end{bmatrix} 是一个正交矩阵,正好由B的三轴组成。

所以点C在坐标系B中的坐标只需要使用上面的矩阵和向量(C-B0)所代表的3X1矩阵即可。

由于这个矩阵是一个正交矩阵,正交矩阵的转置矩阵==正交矩阵的逆矩阵。

逆矩阵Ax矩阵AX矩阵B = 矩阵B  也就变成了

转置矩阵AX矩阵AX矩阵B = 矩阵B

上面正交矩阵的转置矩阵为\begin{bmatrix} Axx&Ayx &Azx \\ Axy&Ayy &Azy \\ Axz&Ayz &Azz \end{bmatrix},同时也是逆矩阵。

已知C通过矩阵得到D,那么如果已知D求C 跟据矩阵的特性只需要逆矩阵*D即可。

逆矩阵AX矩阵AX矩阵cb = 矩阵cb

矩阵AX矩阵cb =D

那么 逆矩阵AXD = 矩阵cb.

矩阵cb 和 (C-B0)相对应。

所以如果已知D在坐标系B中的坐标,求D在坐标系A中的坐标。只需要

\begin{bmatrix} Axx&Ayx &Azx \\ Axy&Ayy &Azy \\ Axz&Ayz &Azz \end{bmatrix}\begin{bmatrix} Dbx\\ Dby\\ Dbz \end{bmatrix}

然后将结果矩阵转成向量再加上B0 即可得到 C。

问题2:向量在不同坐标系间的变化。

已知坐标系A,向量C,坐标系B以及三轴在A中的向量,求C在坐标系B中的值。

向量只跟方向有关,所以可以将A,B的0点重合。也就变成了问题1的简化版,B的0点与A的0点重合。

那么求向量C在B中的向量就很简单了。

\begin{bmatrix} Axx&Axy &Axz \\ Ayx&Ayy &Ayz \\ Azx&Azy &Azz \end{bmatrix}\begin{bmatrix} Cx\\ Cy\\ Cz \end{bmatrix}

延申一下,如果已知向量D在坐标系B中的值,求向量D在A中的值那么就用

\begin{bmatrix} Axx&Ayx &Azx \\ Axy&Ayy &Azy \\ Axz&Ayz &Azz \end{bmatrix}\begin{bmatrix} Dbx\\ Dby\\ Dbz \end{bmatrix}

即可。

 

 

 

 

 

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值