zoukankan      html  css  js  c++  java
  • 坐标变换

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

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

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

    先以在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]

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

  • 相关阅读:
    简单好用的日历排期控件
    Ext.js create store
    Ext.js页面添加元素
    Ext.js Tree
    前端设计的七大法则
    如何写软件开发相关文档,它包含哪些种类和内容
    行内文字末尾下降
    正则表达式
    滚动加载数据
    location.hash来保持页面状态
  • 原文地址:https://www.cnblogs.com/justin_s/p/1918860.html
Copyright © 2011-2022 走看看