所以,我一直在测试 Windows Phone 8 的传感器 API。对于我的应用程序,我使用组合运动 ( http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202984(v=vs. 105).aspx )。
在纵向模式下一切正常,我将滚动参数(我跳过偏航和俯仰)转换为度数,我可以在屏幕上以度数打印出角度。如果我将手机放在面前并逆时针旋转,我会看到度数从 0 变为 -20、-30 等等。
但是,当我将其翻转为横向模式时,我得到了错误的角度。在对偏航、俯仰和滚动(阅读:飞机)以及它如何应用于手机(Android、WP)进行了一些阅读之后,我意识到滚动角只能在以下范围内被信任 [ -90,90] 度。打印出滚动值后,这就是我所看到的,它确认了范围(点击链接以显示图像:http: //i.stack.imgur.com/CPqG1.png)
所以这意味着我无法区分 -45 度和 -135 度,因为滚动值是相同的。
所以,我的问题是:当我顺时针(或逆时针)转动它时,我该怎么做才能让我的应用程序打印绝对角度(从 0-360)?
当然必须有一种方法来确定(在横向模式下)手机是否与地板平行?
我正在使用 VS2012/C#/Windows Phone 8 SDK。
任何正确方向的指示都值得赞赏,也许我需要复习我的高中数学?