计算四元数由坐标2分对象在两个位置(calculate quaternion by coordina

2019-10-19 08:49发布

对象旋转3D。 我有旋转中心和旋转2点的坐标,而不是旋转位置。 四元数计算从第一位置旋转物体在两个位置。

Answer 1:

我们必须在对象的第一位置向量OA“和OB”
OA和OB在第二位置
Q矢量部分的四元数Q 0的标量部分

图。1
评论
OA OB -点向量积
OAxOB -横向量积

从第一当前位置的旋转对象的四元数来第二次是:
1例
如果OA OB'-OB OA '不等于零,则Q = Q 0(OA-OA ')×(OB-OB')] / [OA * OB'-OA' OB]
其中,Q 0 -2 =([(OA-OA ')×(OB-OB')] / [OA OB'-OA” OB])2 1

如果OA OB'-OB OA'= 0,则
2例
如果[OA '+ OA]×[OB' + OB]不等于零和OB-OB”不等于零,
然后存在米那OA-OA '= M(OB-OB')。 搜索一下。
Q = N *(M OB '+ OA'),
其中,n = Q 0(OB-OB ')2 /(2 * OB * [OA'xOB'])
Q 0 -2 =(OB-OB ')4 *(OB' + OA ')2 /(2 * OB * [OA'xOB'])2 1

如果OA OB'-OB OA '= 0和[OA + OA']×[OB OB +'] = 0
3例
如果OB + OB'not等于零,那么
Q =(OB OB + ')/ | OB OB +' |,Q 0 = 0,否则,

4例
OB OB +“= 0
Q =([OB]×[OA])/ [OB]×[OA],Q 0 = 0

从四元数我们可以计算出旋转矩阵或欧拉角



Answer 2:

看看回答类似的问题, 如何找到正确的旋转从一个向量到另一个?

你的不同之处在于第二矢量“向上”不垂直于第一“DIR”。 只是使它和问题解决



文章来源: calculate quaternion by coordinate 2 points of object in two positions