我从控制器中获取四元数,并根据该程序在程序中设置模型的旋转。 如果我想重新校准控制器的基点,我可以将当前传感器值捕获为baseValue,并将模型设置为基本位置:
modelRotation = sensorData * inverseOf(baseValue);
这非常有效,模型将重置为基准位置。
问题在于,如果我在Y轴上旋转控制器并重新校准,现在控制器x轴上的旋转就像在模型的z轴上旋转一样。
有没有办法让模型始终模仿控制器旋转?
答案 0 :(得分:0)
解决方案:
modelRotation = inverseOf(baseValue) * sensorData;
为什么?
我不确定为什么这是我的问题的解决方案,但我了解到它是Math Stack Exchange的一个可能的解决方案: https://math.stackexchange.com/questions/228229/is-division-of-matrices-possible
我试过了,但它确实有效。