- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
当我在 Android 应用程序中收听方向事件时,我得到一个 SensorEvent,其中包含 3 个 float - 相对于真实世界轴的方位角、俯仰角和横滚角。
现在假设我正在构建一个类似 labyrinth 的应用程序,但我不想强制用户通过电话并握住电话,使 xy 平面与地面平行。相反,我希望能够让用户随心所欲地握住手机,躺下或者坐下并以一定角度握住手机。换句话说,我需要根据用户的喜好来校准手机。
我该怎么做?
另请注意,我认为我的答案与 getRotationMatrix
和 getOrientation
有关,但我不确定如何处理!
求助!我已经坚持了几个小时。
最佳答案
对于迷宫式应用程序,您可能更关心加速度(重力)矢量而不是轴方向。在 Phone 坐标系中,该矢量由三个加速度计测量值的组合给出,而不是旋转角度。具体来说,只有 x 和 y 读数会影响球的运动。
如果您确实需要方向,则 3 个角度读数代表 3 个欧拉角。但是,我怀疑您可能并不真正需要角度本身,而是需要旋转矩阵 R,它由 getRotationMatrix() API 返回。一旦你有了这个矩阵,它就基本上就是你正在寻找的校准。当您想将世界坐标中的向量转换为您的设备坐标时,您应该将它乘以该矩阵的逆(在这种特殊情况下,inv(R) = 转置(R)。
因此,按照我在文档中找到的示例,如果您想将世界重力矢量 g ([0 0 g]) 转换为设备坐标,请将其乘以 inv(R):
g = inv(R) * g
(请注意,这应该会为您提供与读取加速度计相同的结果)
此处可能使用的 API:矩阵类的 invertM() 和 multiplyMV() 方法。
关于android - 在 android 中计算给定方位角、俯仰角和横滚角的相对方向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4340804/
我正在寻找一种方法来计算一个绘图点、像素或屏幕坐标相对于另一个绘图点的方位角或方位角 (0-360°)。 我目前有其中的距离部分,并且由于数学不是我上学时最喜欢的科目,我正在向此寻求帮助。 我见过很多
我在网上只能找到LUA中的一个函数,但它给出的值是错误的(用专业的在线工具测量)。 看起来从日出到中午之后的一段时间,数学是有效的,但之后,太阳的角度又回到了日出位置。应该是从 106° 到 253°
上一个问题"Geoalgorithm for finding coordinates of point from a known location by distance and bearing"问同
我正开始构建一个增强现实应用程序,您可以在其中将图像放在屏幕上的增强现实相机 View 中,它会停留在地球上的那个位置,这样其他拥有相机 View 的人就可以过来看看它在增强现实相机 View 上。为
亲爱的程序员/脚本编写者/工程师/其他人, 问题:我目前正在为 Android 3.2 平板电脑开发增强现实应用程序,但在获取准确的罗盘读数方面遇到一些问题。我需要确切地知道平板电脑所面向的 (z)
这看起来是一项非常基本的任务,但我无法解决它。 PyEphem 文档: http://rhodesmill.org/pyephem/radec.html 描述了如何以相反的方式执行转换,从 Body
鉴于以下信息:观察者位于 GPS 给出的经度和纬度。在 GPS 给出的时间上以方位角和天顶观察天空中的物体。 如何获得天空上某个点的银河坐标?这可以用 PyEphem 完成吗? 我认为这让我接近目标:
我试图重做这个已经回答的问题Matplotlib - plot_surface : get the x,y,z values written in the bottom right corner ,但
我是一名优秀的程序员,十分优秀!