我有一个相机四元数(a,b,c,d)和一个凸轮位置(camX,camY,camZ)
我有一个具有 3d 坐标 (x,y,z) 的对象
我需要计算物体相对于凸轮视图方向和平面的方位角、仰角。
第一个问题
如果我把物体放在我的视野中心,如果我旋转凸轮,平移它,我应该有相同的方位角值,对吗?
我没有那个。
第二题,计算。
我正在做对象坐标 - 凸轮位置,以便将对象平移到凸轮。
我采用了所得的坐标,并用四元数及其共轭物制作了三明治产品。 (我按照这个伪代码:http://fr.wikipedia.org/wiki/Quaternions_et_rotation_dans_l'espace http://fr.wikipedia.org/wiki/Quaternions_et_rotation_dans_l%27espace)
然后,我得到一个向量结果,并采用 X 和 Z 分量并计算 atan2
看起来对吗?
任何线索或解释都会对我的斗争有很大帮助
您描述的第二个计算似乎非常接近正确,但有一些您应该验证的基本假设。我稍后会讨论这些。然而,你的第一个问题没有意义。
旋转和平移几乎总是会改变方位角值。如果你直视物体,azimuth==0
。如果然后向左旋转 90°,方位角显然也改变了 90°。如果你然后迈出一步(长度x
)向前,你的方位角刚刚获得了额外的atan(x/d)
度(其中d
是物体在您前面的原始距离)。
至于查找方位角和仰角,您的计算取决于对世界默认方向的假设。也就是说,如果你的相机坐标是[0,0,0],四元数是恒等旋转,那么相机面向什么方向,什么方向向上?通常,“向上”是+y
向前是-z
。如果是这种情况,那么您将这样计算:
p = q'*(obj-cam)*q
az = atan2(p.x,-p.z)
el = asin(p.y/sqrt(p.x*p.x + p.y*p.y + p.z*p.z))
Where q'
是四元数共轭/逆(只是否定q.w
) and *
是四元数乘法(w
向量的分量设置为零)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)