我正在使用 CesiumJs
我有一个四元数 (x,y,z,w) 我有一个矢量 (x,y,z)
我想将该四元数乘以一个向量,基本上在我有一个旋转的那一刻,我想将该旋转与一个向量前向 (0,0,1) 相乘以获得一个方向上的点,但是CesiumJS目前没有这些功能。
我知道有一些方法可以将 Vector 与 Quaternion 相乘,我是在 Unity 中做的,但我不知 Prop 体怎么做
我找到了这个公式 v' = q * v * (q^-1)
但是 (q^-1)
到底是什么?
最佳答案
您可以“向量化”四元数积,即根据向量运算(例如点积和叉积)来编写它。这样做你会得到一个等价于欧拉-罗德里格斯公式 [1] 的公式:
v' = v + 2 * r x (s * v + r x v)/m
其中x表示叉积,s和r分别是四元数的标量和向量部分,m是四元数分量的平方和。
[1] https://en.m.wikipedia.org/wiki/Euler%E2%80%93Rodrigues_formula
关于math - 如何将四元数与向量相乘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58071118/