将方向向量转换为四元数旋转

时间:2013-04-08 07:54:51

标签: vector 3d quaternions

我可以找到很多关于将四元数转换为方向向量的问题,但是没有其他问题让我觉得我做错了什么,但是请耐心等待。

我尝试做的只是使用箭头模型显示方向灯的方向。

方向光的方向是单位矢量,但模型使用四元数旋转。

那么..如何旋转此模型以匹配光的方向?

或者我是疯了还是我真的可以做到这一点,因为光线没有位置但模型确实存在?

1 个答案:

答案 0 :(得分:12)

方向向量不是定义的旋转,它仍然具有无限数量的可能解。请参阅没有关于如何围绕轴旋转的信息。两个矢量是可能的,因为矢量和旋转(具有有意义的中心)并且实际上是完全定义的矩阵。

因为在你的情况下,旋转是没有意义的,只需使用向上矢量作为参考(除非你的光照亮自上而下,反之亦然,那么你需要另一个参考)。

因此,将方向向量D和向上向量U的叉积乘以侧向量S,然后将D和S与新的U n 相交。然后使用D,U n ,S作为行(或列,具体取决于您的计算规则的设置方式)作为矩阵。矩阵到四元数是众所周知的数学。