坐标变换

以前总不能理解坐标变换,自己不能很顺利的做推导,某晚上在看一本书时,突然开朗了。。

下面我来谈下自己的理解。

我们知道一个线性变换,是两个有乘和加操作的向量空间的函数,可以用一个变换矩阵来表示。

先以在R^2空间上几个简单变换为例:

我知道知道逆时针旋转\theta,可以用以下矩阵表示:

\mathbf{A}=\begin{bmatrix}\cos(\theta) & -\sin(\theta)\\ \sin(\theta) & \cos(\theta)\end{bmatrix}

我们先从第一个角度出发看:点p = (x,y)^T旋转后坐标变为了 Ap, 注意此时的坐标系没什么变化,因此我们很容易理解。

但我们知道旋转是相对的,如果认为是坐标系发生了旋转呢?

这种情况下,方便表示令原坐标系为C,新坐标系为C’,我们知道的是p点在C中的坐标(x,y,z)。

还有呢?实际上我们还知道变换后的p(记为 p’)在C’中的坐标,也有 (x,y)

还有呢?旋转角度\theta

要求什么呢? p’在C中的坐标。

已知和所求清楚后,关键的地方来了,我们有了两个坐标架,现在假想我们站在C中看C’的三个标准轴 i’,j’,k’,则分别变为了Ai’ Aj’  Ak’

因此,对于p’  = (x,y,z)^T  [in C’],其在C中的坐标应为p’ =  A*p  [in C]

 

下一篇文章中,以一个更复杂的例子分析,这是一个在机器人手臂或者说多关节的例子。

posted @ 2010-12-28 14:21  justin_s  阅读(286)  评论(0编辑  收藏  举报