在android中计算给定方位角、俯仰角和滚动角的相对方向?

2023-12-12

当我在 Android 应用程序中监听方向事件时,我得到一个 SensorEvent,其中包含 3 个浮点 - 相对于现实世界轴的方位角、俯仰角和滚动角。

现在假设我正在构建一个像迷宫这样的应用程序,但我不想强迫用户通过电话并握住电话以使 xy 平面与地面平行。相反,我希望能够允许用户随心所欲地握住手机,躺下或者坐下来以一定角度握住手机。换句话说,我需要根据用户的喜好来校准手机。

我怎样才能做到这一点?

另请注意,我相信我的答案与getRotationMatrix and getOrientation,但我不知道如何!

请帮忙!我已经被困在这几个小时了。


对于迷宫式应用程序,您可能更关心加速度(重力)矢量而不是轴方向。在电话坐标系中,该矢量由三个加速度计测量值的组合给出,而不是旋转角度。具体来说,只有x and y读数应该会影响球的运动。

如果您确实需要方向,则 3 个角度读数代表 3 个欧拉角。然而,我怀疑你可能并不真正需要角度本身,而是旋转矩阵R,这是由返回的获取旋转矩阵()API。一旦你有了这个矩阵,那么它is基本上就是您正在寻找的校准。当您想要将世界坐标中的向量转换为设备坐标时,您应该将其乘以inverse该矩阵的(在这种特殊情况下,inv(R) = 转置(R).

因此,按照我在文档中找到的示例,如果您想变换世界重力矢量g([0 0 g]) 到设备坐标,乘以 inv(R):

g = inv(R) * g

(请注意,这应该给出与读取加速度计相同的结果)

此处可能使用的 API:反转M() and 乘法MV()矩阵类的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在android中计算给定方位角、俯仰角和滚动角的相对方向? 的相关文章

  • 如何确保整数除法始终向上舍入?

    我想确保如有必要 整数除法总是向上舍入 还有比这更好的方法吗 目前正在进行大量选角工作 int Math Ceiling double myInt1 myInt2 更新 这个问题是我2013年1月博客的主题 http ericlippert
  • 如何在 Android 中使用 Assets 中预加载的 SQLite 数据库

    我想用preloaded database在我的应用程序中意味着尝试在安装 apk 时获取数据库 以便可以使用已保存在其中的数据 我复制了 成分 db 文件位于资产文件夹中 并使用以下代码 但这会出现错误 从资源文件复制数据库时出现问题 我
  • Firebase 数据库快速入门处理计数的方式安全吗?

    我想为文章点赞创建一个增量字段 我指的是这个链接 https firebase google com docs database android save data save data as transactions https fireb
  • 安卓无法玩ogg

    有人知道这是什么意思吗 ogg使用phonegap is Media播放 它使用MediaPlayer 05 26 15 41 50 007 1160 3631 E AudioFlinger no more track names avai
  • 在 Anko DSL 中创建自定义 View/ViewGroup 类

    我想创建一个自定义视图 它只是一些 Android 视图的包装 我考虑创建一个自定义 ViewGroup 来管理其子视图的布局 但我不需要这么复杂 我基本上想做的是 class MainActivity verticalLayout tex
  • 毕加索动画加载图像

    我有以下代码在毕加索中加载图像 使用可绘制的占位符在图像下载时显示 不过 我想要的是一个动画旋转进度条样式的旋转器 它可以在图像加载时不断地旋转 就像我在大多数专业应用程序中看到的那样 毕加索似乎不支持这一点 只支持静态图像可绘制 有没有办
  • 在 Android 中长按时从操作模式中删除后退/主页按钮

    我已经在里面长按实现了上下文操作模式recycler view 为此我打电话给ActionModeCallback从创建动作模式开始 创建动作模式时 默认显示后退箭头 检查如下 单击后退箭头 操作模式将关闭 现在我想要hide or rem
  • 使用 RecyclerView 适配器在运行时更改布局屏幕

    我有两个布局文件 如下所示 如果列表中存在数据 则我显示此布局 当列表为空时 我会显示此布局 现在我想在运行时更改布局 当用户从列表中删除最后一项时 我想将布局更改为第二张图片中显示的 空购物车布局 In getItemCount Recy
  • Renderscript 示例构建错误

    所以我想尝试使用 RenderScript 的示例 并在 Eclipse 中导入了 HelloWorld 但它给了我这样的错误 2011 10 25 13 10 48 HelloWorld home mileoresko workspace
  • 如何使用 Firebase UI 在 recyclerView 中显示时从 Firebase 数据库中的子级引用父级

    我目前正在引用 quote text 子项 这些数据显示在recyclerview using firebase用户界面 我想获取 quote text 的父名称 如何获取 quote text 孩子的父母姓名 When user clic
  • 以编程方式将 TextView 添加到主屏幕小部件

    我想以编程方式将文本视图控件添加到我的主屏幕小部件 在下面的示例中 我使用 TextView 填充 Linearlayout 但是这里应该如何使用 RemoteView 它只接受 xml 资源布局作为参数 public class MyWi
  • Android 从命令行停止模拟器

    这个问题与如何通过命令行关闭Android模拟器 https stackoverflow com questions 5912403 how to shut down android emulator via cmd 但是 在尝试第一个答案
  • NoClassDefFoundError:无法解析:Landroid/support/v7/appcompat/R$styleable

    新手尝试完成 Google 提供的我的第一个应用程序教程 在这个致命异常的过程中 我确实导入了很多随机包来消除许多事情的 无法解析 错误 例如 ActionBarActivity EditText Fragment LayoutInflat
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • 列出所有 k 元组,其条目总和为 n,忽略旋转

    有没有一种有效的算法来查找所有序列k总和为的非负整数n 同时避免旋转 如果可能的话 完全避免 顺序很重要 但对于我正在解决的问题来说 轮换是多余的 例如 与k 3 和n 3 我想要得到一个如下所示的列表 3 0 0 2 1 0 2 0 1
  • FCM onMessageReceived 应用程序运行时返回空白消息和标题

    正如您在标题中所写 当应用程序关闭时 它运行良好 并且onMessageReceived获取消息正文和标题 但如果应用程序处于前台模式 运行模式 则可以发送通知 但没有消息和标题 请问该怎么办 代码 Override public void
  • Android 自定义警报对话框中的 OnClickListener

    我是一个自学成才的初学者 感谢耐心 谢谢 在 Eclipse 中 我使用自己的 xml 文件 custom dialog 创建了一个自定义警报对话框 称为 usernamealert 如果用户尚未输入用户名 即 username lengt
  • 在没有 Wifi 的情况下获取 Android 设备的 MAC 地址

    如何获取没有 Wifi 接口的 Android 设备 例如 Android 模拟器 的网络接口的 MAC 地址 通过WifiManager返回获取的WifiInfonull EDIT 更清楚地说 我必须与本地网络上的现有网络协议 不是我设计
  • Android ScrollView fillViewport 不工作

    我有一个简单的布局 名称位于顶部 按钮位于屏幕底部 或者超出该按钮 以防我添加更多项目 所以我使用带有 LinearLayout 的 ScrollView 如下所示
  • 当ScrollView滚动到底部时加载更多数据

    我有一个带有动态加载内容的滚动视图 有时可能会有很多内容 所以我想在用户滚动到底部时加载更多内容 我搜索了合适的方法 发现了两种 onScrollChanged and getScrollY 但我不知道如何将它用于我的目的 请给我一些建议

随机推荐

  • src绝对路径问题

    我有一个图像C wamp www site img我尝试将其显示在页面中 img src 但它不起作用 该文件实际上在那里 如果我尝试使用相对路径引用它 我就会得到图片 img src img mypicture jpg 错误在哪里 我错过
  • 在 Windows 中从命令行运行 python 脚本

    我正在尝试跑步蛇食 分析一个Python项目 我使用的是 Windows 机器 到目前为止我已经能够弄清楚如何 安装 Tortoise for Mercurial 以从站点下载 SnakeFood 代码 设置 Windows 路径以从命令提
  • Jquery 自动完成底部附加链接

    I am using jQuery auto complete plugin in my web project I want to show 3 element and after that i want to append see al
  • 如何通过重新定义的 ListBox 模板使用 UI 虚拟化

    我正在尝试使用 ListBox 作为包含多个项目的视图 当然 我需要在其中使用 UI 虚拟化 问题是虚拟化仅在我以这种方式声明 ListBox 时才起作用
  • 如何以编程方式获取下一个预定的触发时间?

    我制作了一个新的可安装触发器 该触发器每 2 天以编程方式为我的电子表格触发一次 那么当我返回到电子表格时 我可以得到下次触发函数的时间吗 或者甚至它触发的频率是多少 我所看到的是我可以获得它的类型 它触发的函数 唯一ID等等 Thanks
  • 如何删除具有任何零值的行

    我有一个问题需要解决如何删除 R 中具有零值的行 另一方面 我可以使用na omit 删除所有 NA 值或使用complete cases 删除包含 NA 值的行 有谁知道如何删除 R 中具有零值的行 例如 Before DateTime
  • 正则表达式匹配多个组

    我有以下带有正则表达式的字符串示例 我试图匹配它 Regex d 3 0 9a fA F 2 3 要匹配的字符串 010 00 00 00 我的问题是这样的 正则表达式匹配并捕获 1 组 最终00在字符串的末尾 但是 我希望它能够匹配所有三
  • 如何判断 `constexpr` 是否在编译时求值(无需手动检查)

    有没有一种标准方法可以找出编译器做了什么constexpr功能 旁注 对于调试 默认情况下每个 constexpr 函数都会推迟到运行时 为什么这是明智的 有没有办法影响这一点 对于发布取决于上下文 显然 对于小型测试设置 您可以轻松检查生
  • MySQL 如何解释 VARCHAR 字段大小?

    假设一个字段是这样声明的 a VARCHAR 255 其中可以存储多少个字符 是255还是256 使用了多少空间 我们应该使用 2 的幂然后减去 1 还是没有关系 A VARCHAR 255 最多可以存储 255 个字符 无论字符集编码所需
  • Azure 上的 Asp.Net VNext 应用程序设置

    我真的很喜欢 Asp Net vNext 使用默认 appsettings json 的新配置功能 但当我将网站发布为 Azure Web 应用程序时 我想更改该文件的值 旧的 web config appsettings 很容易更改和配置
  • 使用 pyexiftool 编辑/更新照片元数据的数据

    我想使用 exiftool 更新照片元数据的数据 例如温度传感器 高度传感器和 GPS 经度 高度的数据 首先 我尝试在 exiftool 配置文件中使用命令行添加这些数据的新标签 并且它有效 现在 我想使用 python 脚本更新数据 然
  • 如何在窗口控制台应用程序中调用非静态方法

    我构建了一个控制台应用程序 并尝试测试我的应用程序是否按预期工作 我创建了 API 类的实例 如下面的代码所示 但收到错误 An object reference is required for the non static field 我
  • 包“forecast”的安装具有非零退出状态

    With R version 3 2 3 2015 12 10 on centOS我在尝试着install packages forecast 我明白了 install packages 预测 将软件包安装到 usr lib64 R lib
  • 随机化数组

    我希望实现 Dr D E Knuth 的减法随机数生成算法 我希望实现一个 ATM 面板 当用户登录时 按钮将被扰乱 每个按钮都会改变其位置 这是我的代码 Public Sub addbutton Dim n As Integer 0 Fo
  • 在qt中执行java文件

    我正在尝试在 qt 中执行 java 文件 这是我的 java 文件代码 import android appwidget AppWidgetManager import android appwidget AppWidgetProvide
  • 检测网站访问者是否安装了工具栏,例如。使用 JavaScript 的 Google 工具栏

    我正在开发一个经常使用弹出窗口的在线教育网站 这是第三方提供商的学习管理系统的一部分 因此不可能改变其工作方式 我们接到很多帮助台电话 询问用户在操作系统 浏览器设置和其他工具栏中遇到的弹出窗口拦截器问题 我正在使用 javascript
  • Python 的 time.sleep() 方法等待的时间不正确

    我已经遇到过这个问题好几次了 重新启动 python 似乎可以工作 或 ipython 但是 例如 这是运行以下代码的一种可能的输出 startt time time for i in range 4 time sleep 1 print
  • NUnit 的 log4Net 问题(尝试过 v2.5.7、2.5.2、2.4.8、2.4.7)

    针对生产代码程序集运行 NUnit 时 我收到错误 请参阅帖子底部 生产代码程序集引用了内部使用 log4net 的第三方框架 具体来说 这是 SimplyAccounting 的 SDK 它使用的log4net版本是1 2 9 0 在我们
  • 对于代理容器上的迭代器来说,什么是“最不糟糕的实现”?

    Context 我试图实现一个类似容器的 nD 数组 可以包装底层序列容器并允许将其作为容器的容器 进行处理的东西 arr i j k 应该是 最终是常量 参考 arr i dim2 j dim3 k 好吧 直到那里 arr i 只是子数组
  • 在android中计算给定方位角、俯仰角和滚动角的相对方向?

    当我在 Android 应用程序中监听方向事件时 我得到一个 SensorEvent 其中包含 3 个浮点 相对于现实世界轴的方位角 俯仰角和滚动角 现在假设我正在构建一个像迷宫这样的应用程序 但我不想强迫用户通过电话并握住电话以使 xy