Math 将一个坐标系的旋转矩阵变换为另一个坐标系
我用一个中心点向量定义了一个平面&世界坐标系(wcs)中的3个正交方向单位向量,设置为3x3矩阵。我已经确定了一个关于这个平面坐标系的旋转矩阵,现在我想计算出世界坐标系中与这个旋转匹配的相应旋转矩阵。也就是说,我需要一个新的旋转矩阵,可以应用于wcs中的对象,以匹配我计算的相对于平面的旋转 我想取平面矩阵的逆矩阵(因为我的平面是正交的,所以用转置操作代替),然后乘以旋转矩阵,得到世界坐标系中的等效旋转。这似乎是错误的,因为: 我的平面是wcs的一个小扰动加上绕y轴旋转90度 大致: 0 0 -1 0 1 0 1 0 0Math 将一个坐标系的旋转矩阵变换为另一个坐标系,math,coordinate-systems,Math,Coordinate Systems,我用一个中心点向量定义了一个平面&世界坐标系(wcs)中的3个正交方向单位向量,设置为3x3矩阵。我已经确定了一个关于这个平面坐标系的旋转矩阵,现在我想计算出世界坐标系中与这个旋转匹配的相应旋转矩阵。也就是说,我需要一个新的旋转矩阵,可以应用于wcs中的对象,以匹配我计算的相对于平面的旋转 我想取平面矩阵的逆矩阵(因为我的平面是正交的,所以用转置操作代替),然后乘以旋转矩阵,得到世界坐标系中的等效旋转。这似乎是错误的,因为: 我的平面是wcs的一个小扰动加上绕y轴旋转90度 大致: 0 0 -
关于它的旋转是单位矩阵的一个小扰动。我希望这个小的旋转映射到wcs中的一个小旋转,但不知怎么的,我也得到了90度的旋转。我的数学哪里出了问题?正确的方法是什么?你的解释不够清楚,我无法找出你做错了什么,所以我将告诉你如何从头做起。遵循这些指导,你应该能够找到解决问题的方法 搞清楚矩阵坐标变换的关键是非常非常清楚什么是线性变换,什么是矩阵,什么是关系。我将从基础开始。我将从重复你知道的东西开始,所以请忍耐。我只需要确定我们在术语上是一致的 线性变换是将一个向量空间映射到另一个向量空间(通常是同一个向量空间)的函数 给定一个有限维向量空间和一个基,您可以以一种独特的方式将该向量空间中的任何向量记为一组相关坐标。你得到的陈述在很大程度上取决于基础。我们通常把它写成一个垂直的列 给定两个有限维向量空间和一对相关的基
a
和b
,以及它们之间的线性变换F
,我们可以写出如下矩阵
a
中的每个a\u i
,在基础b
中写下F(a\u i)
,作为一列M=Fab
函数合成用矩阵乘法表示。即Fab*Gbc=(fog)ac
。(矩阵乘法定义的要点就是要做到这一点。)
现在,在您的例子中,有一个从R3
到R3
的线性变换“F”。您将其表示为基准“b”,并希望其表示为基准“a”。也就是说,您拥有Fbb
,并且希望拥有Faa
。设I
为恒等式线性变换,它只将其发送给自身。然后Faa=Iab*Fbb*Iba
,您需要做的就是找出矩阵Iab
和Iba
是什么
现在您有了坐标系a
(常用坐标)和b
。您知道坐标系a
中写着什么b
。按照上面的说明,用矩阵表示线性运算符(我说的矩阵很重要),您可以立即写下Iba
。矩阵Iab
与此矩阵相反
注意,Iab
与他们的猜测相反,这一事实让许多人感到困惑。但这是很容易经历的事情。我强烈建议你尝试一下。起床。转90度。请注意,当你朝一个方向转弯时,世界似乎在朝另一个方向转弯。当坐标系向一个方向旋转时,事物的表示会发生相反的变化(即向另一个方向旋转)
编辑:线性运算符的解释是正确的,但是所述问题涉及围绕非原点的点旋转。所有线性操作符都将原点发送到原点。这种操作可以将原点发送到其他位置。因此,我们需要从线性函数转移到仿射函数。但幸运的是,仿射函数并不是一个大问题。它们实际上是一个常数点加上一个线性段。也就是说,不是用矩阵表示的函数,而是用点和矩阵表示的函数 首先,引入一个重要但似乎武断的区别是非常有帮助的。点就是点。向量是点之间的偏移量,可以表示为一个点减去另一个点。点和向量实际上是不同种类的东西,我们应该以不同的方式来看待它们 这就是我们做出区分的原因。如果
F
是点上的仿射函数,则F
是将向量映射到向量的线性函数。(常量位移动向量的起点和终点,但不改变它们之间的偏移量。)这让我们可以轻松地分离仿射函数的常量部分和线性部分
在处理仿射函数时,没有特别的理由只处理以原点为中心的坐标系,而且通常有很好的理由不这样做。因此,坐标系由点p
和基a确定