- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想我已经阅读了所有关于这个主题的帖子,但我仍然无法理解一些事情:
问题 1:要获得全局坐标中的磁场矢量,我需要将反转矩阵与磁场矢量相乘,为什么我需要反转旋转矩阵?
问题 2:假设我有一个设备,我可以使用 getOrientation(...) 方法根据沿 Z 轴的旋转计算方位角。我可以使用旋转矩阵或其他一些方法来计算磁北的方位角,而不管手机的姿态如何?那么,如果我旋转手机,我和磁北之间的角度将保持不变?
问题 3:当我将磁矢量(第 4 列为零)与反向旋转矩阵相乘时,我得到 x 非常接近于零。我从其他帖子知道这是可以的,但我不明白为什么?
Q4:理论上,假设我有两个设备,彼此相距 1 米,是否可以仅根据它们的磁场(在全局坐标中)来确定两个设备的空间位置
提前致谢。
附言我已经阅读了这些帖子: Getting magnetic field values in global coordinates , How can I get the magnetic field vector, independent of the device rotation?
Convert magnetic field X, Y, Z values from device into global reference frame
最佳答案
如果您在 Convert magnetic field X, Y, Z values from device into global reference frame 阅读我的回答你还是不明白。
A1。将旋转矩阵乘以设备坐标系中磁场矢量的坐标,得到磁场矢量在世界上的坐标坐标系。
强调一下:上面说的是旋转矩阵,不是倒旋转矩阵。
调用getRotationMatrix
得到的旋转矩阵是基矩阵从设备基到世界基的变化。即给定任意一个在设备坐标系中有坐标的向量v,同一个向量v在世界坐标系中的坐标可以通过乘以旋转矩阵<得到/strong> 与设备系统坐标中的坐标。
反转矩阵是基矩阵从世界基到设备基的变化。因此,当您将该矩阵与坐标相乘时,它被解释为将该矩阵与世界坐标系中的向量坐标相乘,以获得设备坐标系中相同向量的坐标。因此,如果您将反向旋转矩阵 与磁传感器 返回的磁场矢量 的坐标相乘。然后坐标被解释为世界坐标系中矢量的坐标,因此不表示磁场矢量,结果乘积不是< strong>世界坐标系中的磁场矢量。实际上它是一个向量在设备坐标系中的坐标。
A2. getOrientation
仅当设备是扁平时才有意义。对我来说,这只是一堆角度计算。我查看我尝试做的几何学,然后使用旋转矩阵来计算我想要的。比如计算后置摄像头指向的方向,我看成是-z的方向(与屏幕正交的向量的反方向)。因此,为了找到这个方向,我将 -z 投影到世界 东西北平面 并计算此投影矢量 和 之间的角度>北轴。现在,如果您这样想,那么设备的旋转将不会改变-z 的方向,因此投影矢量 与您旋转设备时相同。如果你使用 getOrientation
那么你必须预先调用remapCoordinateSystem(inR, AXIS_X, AXIS_Z, outR)
对于 getOrientation
给你正确的结果。
A3. getRotationMatrix
假设地磁参数 是完全位于北天平面 中的向量的坐标。那么位于该平面内的任何向量的 x 坐标都必须等于 0。这只是基本的线性代数。
A4. 答案是否定的。要获得空间位置,您必须相对于固定 坐标系来表达这些向量。只有这些向量在设备坐标系中的坐标,您无法找到一个固定基来计算基矩阵从设备基到这个固定基础。需要满足我上面链接中所述的 2 个条件才能计算基础的变化。
关于android - 磁场、旋转矩阵和全局坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15547691/
我想我已经阅读了所有关于这个主题的帖子,但我仍然无法理解一些事情: 问题 1:要获得全局坐标中的磁场矢量,我需要将反转矩阵与磁场矢量相乘,为什么我需要反转旋转矩阵? 问题 2:假设我有一个设备,我可以
我是一名优秀的程序员,十分优秀!