我在SO上看过类似的问题,但没有人回答......我想这是一个非常愚蠢的问题,或者是一个导致无意义问题的愚蠢错误。我想这是一个与编程问题相关的数学相关问题。无论如何,我已经挣扎了两个星期,所以我希望你能帮助我!
我想使用M = SensorManager.getRotationMatrix()来查找设备系统中“静态”向量的坐标(坐标是世界系统中的常量)。当我在opengl中使用矩阵时一切顺利但是当我尝试自己编写一些代码时,我得到了一些我无法理解的值。
例如,我有一个从设备屏幕中心向北的向量。我们称之为y。 世界系统中y的坐标是y(0,1,0),它们不会改变。但是,如果我旋转设备,这些坐标值会在设备系统中发生变化,并变为y'(y1,y2,y3)。我想知道y1,y2和y3。
我试过y'= M * y,但我无法弄清楚我得到的值是什么:它们与我旋转设备时所期望的任何东西都不匹配。我认为它会旋转设备的y矢量(指向相机),因此它与地球磁北对齐,我得到的坐标将在设备的系统中。实际上,当我在opengl.multmatrix中使用矩阵时会发生这种情况......矢量旋转并始终指向北方。
我还试图重新映射旋转矩阵,因为我使用的是变换器板,它实际上是指向摄像机的x向量。但是y'值并不是我所期望的,我不需要用opengl来做 所以,如果我想手工完成opengl的工作,那么我在理论中缺少的是什么?实际上M * y是什么?我应该使用M转置,因为我真正想要的是改变我表达载体的系统吗? (我也试过了,但我又失败了)。 欢迎任何详细的答案......谢谢。