Android getRotationMatrix和getOrientation原理
1、getRotationMatrix
这个我也是参考的一篇cnbolg上的一篇文章,链接在这,就不搬运了。Android中SensorManager.getRotationMatrix函数原理解释http://www.cnblogs.com/zuoxiaofei/p/4244238.html
2、getOrientation
这个的话我先是在知乎上找到了一篇文章,https://www.zhihu.com/question/33565613,但是该文章并没有给出旋转矩阵怎么推导的,下面再给出三维旋转矩阵的公式的推导的过程链接。 三维旋转矩阵推导:http://blog.youkuaiyun.com/yhl_leo/article/details/50732966
3 我的理解
getRotationMatrix的参数有手机的(重力)加速度数据和磁传感器数据,按照我的理解重力加速度(g)的方向就是指向地心,垂直于水平面,磁力(m)的方向应该是南北方向,这两个向量叉乘得到了一个东西方向的向量(we),然后该向量重力加速的的向量都归一化,再做叉乘又得到一个水平南北方向的的向量(sn),g与we,sn两两正交,组成了大地坐标系。而这三个向量组成的矩阵自然也就是旋转矩阵。然后和三维旋转矩阵推导出的含有航向角(方向角)、倾斜角、旋转角的旋转矩阵一一对应,就可以求出相应的角度。
其他参考链接
a 旋转矩阵(Rotate Matrix)的性质分析:
http://blog.youkuaiyun.com/zhang11wu4/article/details/49761121
b 关于Euler angles:https://en.wikipedia.org/wiki/Euler_angles
结语:虽然都是搬运,但是整理了一下供需要的人参考吧,毕竟自己在查的时候也找的焦头烂额
---------------------
作者:Fore7erLe3
来源:优快云
原文:https://blog.youkuaiyun.com/newcoderzZ/article/details/60955974?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!