繁体   English   中英

将世界转换为对象坐标

[英]Convert world to object coordinates

iPhone陀螺仪接收相对于某个参考姿态的旋转数据,并且旋转不变(除非相乘)。可以说,我使用iPhone相机面对墙壁,并向左旋转45度( roll += PI/4

现在,如果我将手机抬到天花板上,则偏航和俯仰都会改变,因为坐标空间是固定的(世界坐标空间,不会随手机移动或旋转。)是否可以确定该角度(地板平面和相机方向向量),横摇,偏航和俯仰?

编辑:而不是打开另一个问题,我将在这里尝试。 吕克的解决方案有效。 但是如何获得其他两个旋转角度呢? 我已经阅读了发布的链接上的信息,但是学习线性代数已经有好几年了。 实际上,这可能比编程问题还要数学。

我不是真的为iPhone编写代码,所以我会在“真实世界坐标”框架上信任您。

在这种情况下,您需要两个z轴向量之间的点积。 这将为您提供所需角度的余弦,因此非常接近。 由于平面之间的角度只有在90°之间的值才有意义,因此您实际上拥有该余弦中所需的所有信息。

而且这里没有乳胶格式,否则我会更详细一些,但是如果您感兴趣,请阅读此页面 ,我将在此处包括最终结果,即三个旋转的旋转矩阵: 旋转矩阵

现在,水平平面的z轴矢量为(0,0,1) (尽管将其作为垂直矢量读取)并随此矩阵旋转,您只需获得其第三列即可。

因此,我们希望在第三列和我们的(0,0,1)向量之间具有点积,因此得到的cos(β)cos(γ)cos(pitch)*cos(roll)

总之,您的计划之间的夹角是arccos(cos(pitch)*cos(roll)) 此值将告诉您iPhone倾斜了多少,而不是向哪个方向倾斜。 但是您可以根据我们所说的向量(矩阵的最右列)的值来进行计算。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM