相对计算四元数

问题描述 投票:0回答:1

问题在下图中解释。现在我有Q1,Q2和Q3的Quaternions数据。我该如何计算Q4?在此先感谢您的帮助。

enter image description here

为了更清楚:

我想开发一个3D室内导航应用程序,允许用户上传路线并在同一位置重现路线。

创建路径并上传时:首先,用户打开摄像机并获得启动位置为O,然后他将存储X的平移和旋转数据,这是一个预定义的位置。最后通过记录另一个像Y相对于O的点来创建它们的路径。

当再现之前创建的路径用户时,他们再次打开相机并获得另一个启动位置O'。他可以再次进入预定位置并再次进行X的平移和旋转。然后我可以计算相对于O'的Y并重现该点。

在我看来,我可以通过矢量计算来计算翻译:O'X - OX + OY = O'Y

但我不熟悉四元数和旋转部分。我尝试过相同的方法,但结果不正确。因此,我将问题简化为图中描述的模型并寻求帮助。

unity3d rotation quaternions arcore
1个回答
0
投票

我认为Quaternion.SetLookRotation适合你的问题,它将前向矢量(和向上矢量)转换为四元数,而人们的向上矢量通常是Vector3.up,所以:

var Q4 = Quaternion.SetLookRotation(/* vector Y-O' here */);
© www.soinside.com 2019 - 2024. All rights reserved.