gpt4 book ai didi

android - 等效替换已弃用的 Sensor.TYPE_ORIENTATION

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:11:25 31 4
gpt4 key购买 nike

我正在寻找一种解决方案来替代已弃用的 Android 传感器 Sensor.TYPE_ORIENTATION

报告最多的解决方案是结合Sensor.TYPE_ACCELEROMETERSensor.TYPE_MAGNETIC_FIELD,然后使用SensorManager#getRotationMatrix 计算旋转矩阵。并使用 SensorManager#getOrientation 获得欧拉角.另一个报告的解决方案是使用 Sensor.TYPE_ROTATION_VECTOR,它也通过使用 SensorManager#getOrientation

以旋转矩阵和欧拉角结束

不幸的是,在旋转移动设备时,它们的行为与 TYPE_ORIENTATION 完全不同。当您的手机放在桌面上时尝试这两种类型,然后将其调高(俯仰)至 90°(屏幕现在正对着您)。计算出的方位角和滚动欧拉角变得非常疯狂(导致称为 Gimbal lock 问题),而使用 TYPE_ORIENTATION 检索的度数值非常稳定(不准确但相当不错)。 TYPE_ORIENTATION 的每个值(偏航、俯仰和滚动)似乎都是某种“投影”度数,没有 Gimbal Lock 问题。

有什么方法可以在不使用折旧的 TYPE_ORIENTATION 传感器(可能来自旋转矩阵)的情况下获得相似的度数(对于偏航、滚动和俯仰)? TYPE_ORIENTATION 算法在内部是如何实现的?

最佳答案

getOrientation 中的方位角 是磁北与设备 y 轴投影到世界 x-y 平面之间的角度。当设备达到 90° 时,投影为零矢量,因此方位角在这种情况下没有意义,可以是任何值。在物理上,试图找到磁北和指向天空的矢量之间的角度是没有意义的。你应该看看我的项目 https://github.com/hoananguyen/dsensor/blob/master/dsensor/src/main/java/com/hoan/dsensor_master/DProcessedSensor.java

关于android - 等效替换已弃用的 Sensor.TYPE_ORIENTATION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38753973/

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