gpt4 book ai didi

android - TYPE_ACCELEROMETER 和 TYPE_MAGNETIC_FIELD 类型如何用于在 Android 设备上制作指南针

转载 作者:行者123 更新时间:2023-11-29 21:12:40 26 4
gpt4 key购买 nike

我正在开发一个使用 compass 的应用程序虽然我成功地实现了它但是没有这么简短的解释 how it works . TYPE_ACCELEROMETER 怎么样和 TYPE_MAGNETIC_FIELD用于获取方向。我知道我们确实得到了它,我们得到的数组的零索引是 azimuth我们从中获得学位并知道北方在哪里。但是它是如何得到这一切的。 谁能解释一下?

其次,如果我把我的手机放在地板上,假设当它放在 ground 上时它指向北方的方向怎么办?现在我拿起​​我的手机并握住我upside down会发生什么,为什么?

根据我的理解方向shouldn't changed .我可能是错的,任何人都可以在这方面指导我。多谢。

最佳答案

您需要Magnectic fieldAccelerometer 来计算罗盘方向。如果您阅读 getRotationMatrix 的源代码或更详细的解释,您就会明白为什么,请参阅 Convert magnetic field X, Y, Z values from device into global reference frame

如果你站在同一个地方,磁场不会改变。也就是说 onSensorChanged 返回的磁场矢量应该变化很小。变化的不是矢量,而是设备的坐标。正在计算和调用 “罗盘方向” 的东西的含义让您感到困惑。在这种情况下,用作“罗盘方向” 的方向是y 坐标 的方向。因此,当您垂直握住手机时,y 坐标 指向天空或地面,谈论“罗盘方向”

没有任何意义

关于android - TYPE_ACCELEROMETER 和 TYPE_MAGNETIC_FIELD 类型如何用于在 Android 设备上制作指南针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22326720/

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