对象旋转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”。 只是使它和问题解决