如何从旋转矩阵中获取用户视点?

问题描述:

我正在开发一款Android VR视频播放器。我的方法是使用全景视频帧作为纹理,并将其绑定到位于原点的球体。我使用旋转矢量传感器来获得旋转矩阵,然后将矩阵传递给opengl以渲染球体。现在我的问题是,是否有可能通过旋转矩阵知道用户正在查看的点的纬度和经度?假设用户开始查看(0,0)。如何从旋转矩阵中获取用户视点?

如果你有一个方向矢量xyz,那么经度:

longitude = Math.toDegrees(Math.atan2(-y, x)); 

而且纬度:

latitude = Math.toDegrees(Math.atan2(z, Math.sqrt(x*x + y*y)));