从四元数据中重新调整基于位置的

时间:2017-10-10 21:46:38

标签: math quaternions

我从控制器中获取四元数,并根据该程序在程序中设置模型的旋转。 如果我想重新校准控制器的基点,我可以将当​​前传感器值捕获为baseValue,并将模型设置为基本位置:

modelRotation = sensorData * inverseOf(baseValue);

这非常有效,模型将重置为基准位置。

问题在于,如果我在Y轴上旋转控制器并重新校准,现在控制器x轴上的旋转就像在模型的z轴上旋转一样。

有没有办法让模型始终模仿控制器旋转?

1 个答案:

答案 0 :(得分:0)

解决方案:

modelRotation = inverseOf(baseValue) * sensorData;

为什么?

我不确定为什么这是我的问题的解决方案,但我了解到它是Math Stack Exchange的一个可能的解决方案: https://math.stackexchange.com/questions/228229/is-division-of-matrices-possible

我试过了,但它确实有效。