Android中的传感器坐标系';我不能改变,是吗?
我在很多地方读到这样的内容:“API用于设备自然定向的传感器坐标系不会随着设备的移动而改变,与OpenGL坐标系相同。” 现在,我得到了与此图像相同的读数: 我不明白的是:如果旋转手机时坐标系不变(屏幕始终面向用户),重力应始终施加在Y轴上。它应该只改变轴,如果我把手机放在一个位置,屏幕不再面向用户,就像放在一张桌子上,重力应该应用在Z轴上 我的理解有什么问题Android中的传感器坐标系';我不能改变,是吗?,android,android-sensors,tilt-sensor,Android,Android Sensors,Tilt Sensor,我在很多地方读到这样的内容:“API用于设备自然定向的传感器坐标系不会随着设备的移动而改变,与OpenGL坐标系相同。” 现在,我得到了与此图像相同的读数: 我不明白的是:如果旋转手机时坐标系不变(屏幕始终面向用户),重力应始终施加在Y轴上。它应该只改变轴,如果我把手机放在一个位置,屏幕不再面向用户,就像放在一张桌子上,重力应该应用在Z轴上 我的理解有什么问题 谢谢!Guillermo。当设备的屏幕方向改变时,轴将交换。根据你引用的文章: 然而,Android sensor API将传感器坐标空
谢谢!Guillermo。当设备的屏幕方向改变时,轴将交换。根据你引用的文章: 然而,Android sensor API将传感器坐标空间定义为相对于设备的顶部和侧面,而不是短边和长边。当系统调整屏幕方向以响应侧向握住手机时,传感器坐标系不再与屏幕坐标系对齐,应用程序的显示会出现意外的旋转
要访问未交换的值(如果愿意),请在values[]中使用索引3、4和5,否则同一篇文章中提到的一些建议会非常有效 这是一个很老的问题,但我觉得它仍然相关。到今天为止,佩奇在其传感器坐标系一章中仍然说: 了解该坐标系最重要的一点是,当设备的屏幕方向改变时,轴不会互换,也就是说,传感器的坐标系不会随着设备的移动而改变。此行为与OpenGL坐标系的行为相同 对我来说,这个措辞仍然令人困惑,当然可能是因为我不是英语母语人士 我的理解是,在Android中(就像在iOS中一样),传感器假设的坐标系与设备集成在一起。也就是说,坐标系与设备固定在一起,其轴随设备一起旋转 因此,对于自然方向为纵向的手机,当手机垂直放置在用户面前时,Y轴指向上方。请参见下图,来自同一位置: 然后,当用户将手机向左横向旋转时(因此,主页按钮位于右侧),Y轴指向左侧。请参见下图,从a(尽管屏幕不再真正面向用户): 还有一篇来自Android开发者博客的经常被引用的帖子,上面说: API用于设备自然定向的传感器坐标系不会随设备移动而改变,与OpenGL坐标系相同 在我看来,这与我之前的推理完全相反。但话说回来,在接下来的文章中,有什么问题?第二章,你们可以看到,当手机向左横向旋转时,Y轴指向左边,就像我之前的推理一样