首先,这不是重复的。所有其他看似相关的问题都要求表示2 个向量方向之间旋转的四元数,即解决方案不考虑这 2 个向量的范数。
这就是我想要的。想象一下,我有非单位向量a = (0, 0, 2)
和b = (3, 1, 2)
. 遵循最初的汉密尔顿对四元数的定义q = a / b
(这个定义是象征性的,因为你当然不能划分向量)。有关此概念,请参阅Wikipedia。由此我可以推断(也许这很天真)我能以某种方式找到这样q
的q * b = a
.
换句话说,给定a
,b
我想找到一个四元数q
,乘以它b
会给我a
。请注意,我对简单的旋转(单一)四元数不感兴趣,它只会旋转b
到a
. 实际上,除了旋转之外,我还希望将 norm ofb
缩放到 norm of a
。
是的,我知道我可以分两个阶段完成:b
使用标准的酉四元数方法旋转,然后手动将旋转缩放b
到范数,a
这当然会涉及额外的平方根(这是我在这里试图避免的)。事实上,我想要这两个操作的计算高效组合,我觉得这是可以实现的,但信息并不广泛,因为它似乎不是传统的用例。
也许我错了。请分享你的经验。谢谢你。
为什么不是math.stackexchange.com?
因为我对彻底的数学推导或解释不感兴趣。我关心的是构造这种四元数的计算效率高的算法。不过,如果答案中包含这些细节,我真的很感激,也许其他人将来也会偶然发现同样的问题。
对于接近的选民:
继续并关闭查找代表从一个向量到另一个向量的旋转的四元数。
此外,我已经正确标记了我的问题。我的问题属于 StackOverflow 中这些人口众多的标签。结果,您关闭的原因没有任何意义。