该问题在下图中说明。 现在我有Q1,Q2和Q3的四元数数据。我该如何计算Q4? 预先感谢您的帮助。
更清楚地说:
我想开发一个3D室内导航应用程序,该应用程序允许用户上传路线并在同一位置重现路线。
在创建路径并上传时: 首先,用户打开相机并获得初始位置O,然后他将存储X的平移和旋转数据,X是预定义的位置。最终通过记录相对于O的另一个点(例如Y)来创建路径。
当再现用户先前创建的路径时,他们再次打开相机并获得另一个初始位置O'。他可以再次转到预定义的位置,并再次获得X的平移和旋转。然后我可以计算相对于O'的Y并重现该点。
在我看来,我可以通过矢量计算来计算翻译:O'X-OX + OY = O'Y
但是我对四元数和旋转部分不熟悉。我尝试过相同的方法,但结果不正确。因此,我将问题简化为图中描述的模型,并寻求帮助。
答案 0 :(得分:0)
我认为Quaternion.SetLookRotation
适合您的问题,它将正向向量(和向上向量)转换为四元数,而人们的向上向量通常为Vector3.up
,所以:
var Q4 = Quaternion.SetLookRotation(/* vector Y-O' here */);