标签: ios swift trigonometry core-motion euler-angles
我需要从iPhone CoreMotion数据(俯仰,偏航,滚动或四元数)中找到特定角度。让我们想象两行。第一个应该从电话到地板垂直。第二个应该指向相机正在看的地方(如果相机正在工作,那么该线的开始将在相机处,并且在相机预览中心显示的地方的末端)。我需要在这两条线之间找到一个角度。我不知道从哪里开始,有人可以帮忙吗?
我拥有CoreMotion的所有数据,所以音高,偏航,滚动/重力x,y,z,Attitude.quaternion / rotationMatrix。
答案 0 :(得分:0)
如果您拥有所有参数,那么希望通过这种方式您可以找到所需的角度
θ=(1 / Sin)(反向/斜边)
答案 1 :(得分:-1)
需要改变看待这个的方式。首先我意识到,偏航并没有影响到这一点。解决方案是毕达哥拉斯模式,以俯仰和滚动为参数,因此:
sqrt(pow(pitch, 2) + pow(roll, 2))
实际上,当手机在偏航轴上稍微旋转时,这仍然不能正常工作。不知道为什么,我会试着搞清楚。但这是一个很小的错误,只有在音高接近90度时它才可见。