有很多类似的问题,但我找不到答案=(。 我在右手坐标系中从传感器得到四元数。 然后我通过这个四元数在Unity中绘制一个对象。 Unity使用左手坐标系统。 如果我将传感器顺时针旋转一个轴,则一个轴将始终沿相反方向旋转=( 我已经阅读了很多书籍,文章,论坛帖子大约3周。我仍然找不到解决方案。
我测试了以下算法: 1.将四元数转换为矩阵 - >然后将矩阵转换为左手CS(determinaте将为-1) - >并转换回四元数 - 这不起作用。
转换矩阵(3x3)= 1 0 0 0 1 0 0 1 -1
新CS中的矩阵=(变换矩阵)(q_mat)(变换矩阵)
还有很多其他方法.... 请帮助=((
答案 0 :(得分:1)
如果要将右手坐标转换为Unity的左手坐标,请使用以下函数:
private Quaternion rightCoordToUnityCord(Quaternion q)
{
return new Quaternion(q.x, q.y, -q.z, -q.w);
}
它来自Unity的doc,我一直在使用它,因为我发现它。希望它能解决你的问题。