gpt4 book ai didi

math - 将一个坐标系的旋转矩阵变换到另一个坐标系

转载 作者:行者123 更新时间:2023-12-04 20:21:26 28 4
gpt4 key购买 nike

我在世界坐标系 (wcs) 中有一个用中心点向量和 3 个正交方向单位向量定义的平面,设置为 3x3 矩阵。我已经确定了一个关于这个平面坐标系的旋转矩阵,现在我想在世界坐标系中找出与这个旋转相匹配的对应旋转矩阵。那就是我想要一个新的旋转矩阵,它可以应用于 wcs 中的对象以匹配我相对于我的平面计算的旋转。

我想取平面矩阵的逆(由转置操作代替,因为我的平面是正交的)并将其乘以旋转矩阵以获得世界坐标系中的等效旋转。这似乎是错误的,因为:

我的飞机是来自 wcs 的小扰动加上绕 y 轴旋转 90 度
大致:
0 0 -1
0 1 0
1 0 0
并且围绕它的旋转是单位矩阵的一个小扰动。我希望这个小旋转映射到 wcs 中的一个小旋转,但不知何故,我也从扔在那里的飞机获得了 90 度旋转。我的数学哪里出了问题,解决这个问题的正确方法是什么?

最佳答案

你的解释不够清楚,我无法弄清楚你做错了什么,所以我就告诉你如何从头开始。按照这些说明操作,您应该能够弄清楚如何解决您的问题。

计算矩阵坐标变换的关键是非常非常清楚什么是线性变换,矩阵是什么,关系是什么。我将从基础开始。我将首先重复你知道的内容,所以请耐心等待。我只需要确保我们在术语上保持一致。

线性变换是一个函数 F将一个向量空间映射到另一个(通常是相同的)。

给定一个有限维向量空间和一个基,您可以以独特的方式将向量空间中的任何向量写成一组关联坐标。您获得的表示在很大程度上取决于基础。我们通常将其写为垂直列。

给定两个有限维向量空间,以及一对关联的基 ab ,以及线性变换 F在它们之间,我们可以写出一个矩阵如下。

  • 每个a_ia ,记下F(a_i)在基础 b作为专栏。
  • 连接这些列以获得矩阵。

  • 此操作将被证明至关重要!

    因此,矩阵取决于线性变换和一对基选择。我将其表示为 M = Fab .

    函数组合由矩阵乘法表示。即 Fab * Gbc = (F o G)ac . (矩阵乘法定义的全部意义在于使这一点成立。)

    现在,在您的情况下,您有来自 R3 的线性变换 'F'返回 R3 .您将它表示在基数“b”中,并希望它以基数“a”表示。那就是你有 Fbb并且想要 Faa .让 I是恒等线性变换,它只是将它发送给自己。然后 Faa = Iab * Fbb * Iba你需要做的就是弄清楚矩阵是什么 IabIba是。

    现在您有了坐标系 a (通常的坐标)和 b .你知道吗 b在坐标系中写出 a .按照上面的说明用矩阵表示线性算子(我说的那个很关键),你可以立即写下 Iba .矩阵 Iab是这个的倒数。

    请注意,许多人对 Iab 的事实感到困惑。是他们猜测应该是什么的倒数。但这是很容易体验的事情。我强烈建议您实际尝试一下。起床。转 90 度。请注意,当您转向一个方向时,世界似乎转向另一个方向。您正在体验这样一个事实,即当您的坐标系以一种方式旋转时,事物的表示会进行相反的操作(即以另一种方式旋转)。

    编辑 :线性算子的解释是正确的,但是所述问题涉及围绕不是原点的点的旋转。所有线性算子都将原点发送到原点。这种操作可以将原点发送到别处。因此,我们需要从线性函数转向仿射函数。但幸运的是,仿射函数并不是什么大问题。它们实际上是一个恒定点加上一个线性部分。那不是可以用 Mx 表示的函数与 M一个矩阵,最终得到形式为 p + Mx 的函数与 p一点和 M一个矩阵。

    首先,引入一个重要但看似随意的区别非常有帮助。一个点就是一个点。向量是点之间的偏移量,可以表示为一个点减去另一个点。点和向量确实是不同种类的东西,我们应该以不同的方式看待它们。

    这就是我们做出区分的原因。如 F是点上的仿射函数,则 F是将向量映射到向量的线性函数。 (常量位移动向量的起点和终点,但不会改变它们彼此的偏移量。)这让我们可以轻松地分离仿射函数的常量和线性部分。

    当您处理仿射函数时,没有特别的理由只处理以原点为中心的坐标系,而且通常有充分的理由不这样做。因此坐标系由点 p 确定。和一个基础 a为向量空间。 (稍微复杂一点,但不多。)在该坐标系中任意点 q可以映射到向量 q - p然后在基中表示的向量 a .同样,习惯上将这些坐标写成一列。

    现在如果 F是一个仿射函数,那么你需要做的就是找出 F的线性部分,并在其中添加 F发送坐标系的原点。

    如果要在一个坐标系中采用仿射函数, (p, a) ,并将其转换为另一个, (q, b) ,您要做的就是从基础 a 转换线性位到基础 b ,然后弄清楚是什么 F(p)结果是。

    所以仿射函数基本上是线性函数,其中添加了原点所在位置的信息。大部分工作都花在线性函数的矩阵表示上,但你不能忘记弄清楚原点发生了什么。

    关于math - 将一个坐标系的旋转矩阵变换到另一个坐标系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6074857/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com