我已经创建了一个应用程序,它在Android中很好地使用了Gyrosope本地扩展程序,并且运行得非常完美。
然而,现在我已经在使用AIR 4.0的iPhone 4 (iOS7)上进行了测试,而陀螺仪的性能似乎完全不同,在这里倾斜似乎除了旋转手机什么也不做。
有没有人知道这些数据在iOS和Android上的工作方式是否有很大的不同?
我似乎有一个http://www.ketzler.de/2011/11/adobe-air-gyroscope-native-extension-with-euler-angles-roll-pitch-yaw-for-ios/,我正在考虑尝试使用。
这是替换还是对现有本机扩展的补充?
发布于 2014-02-18 01:45:09
通过使用多个传感器来计算设备的位置,你会得到更好的结果。您所提到的扩展通过iOS SDK中的内置函数实现了这一点。利用现有传感器的融合,你可以从陀螺仪得到快速的响应,但是使用加速度计和磁强计来解释漂移。
在iOS上,它使用CMAttitude类(这是您提供的ane链接所使用的):
Class/Reference/Reference.html
在这两个平台上使用这一技术肯定会使数据更加接近,但是在Android上有几种不同的方法,因为您可以访问更多的信息。当然,Android上最大的问题是,所有不同的硬件使用,所以传感器都报告的范围和值略有不同。我发现最好的方法是使用TYPE_ROTATION_VECTOR传感器,然后使用SensorManager.getOrientation函数,如果你想要的是欧拉角。我还尝试了一种自定义融合算法,其结果参差不齐。
VECTOR
我还建议您研究四元数,这为设备定位提供了更好的结果,并避免了相关的万向节锁定。
对于distriqt的扩展包,我花了很长时间来研究这一切,如果您对此感兴趣,我将发布一个新的DeviceMotion扩展。
https://stackoverflow.com/questions/21818206
复制相似问题