三个js的旋转是不正确的

时间:2014-04-07 06:15:41

标签: rotation three.js

我正在尝试使用three.js旋转网格。我已经设置了euler命令" ZXY"。现在,如果我将X旋转90度并应用Y或Z旋转,则显示相同的结果。虽然我认为旋转Y和Z的结果应该是不同的。

这种情况被称为万向节锁定。您可以在three.js在线编辑器

上轻松地生成此问题

http://threejs.org/editor/

在Z旋转中放置1.570,然后在Y和X中更改旋转值。您可以看到两者将产生相同的输出,这不应该在应用程序中发生。

1 个答案:

答案 0 :(得分:1)

你正在处理的是万向锁。当您使用欧拉角时会发生这种情况。由于欧拉角表示是模糊的,因此许多欧拉三元组可能导致相同的旋转。重要的是应用3个角度x,y和z的顺序。 例如: 旋转90度大约x等于在y周围旋转180度,然后在x周围旋转-90度。 要避免这种情况,请使用四元数进行旋转。