x和z的threejs旋转单独工作但一起失败

时间:2013-05-21 17:09:00

标签: three.js webgl

我需要围绕x和z轴旋转钻石(见附件)。当单独旋转时(意味着我只设置rotation.x或rotation.z),旋转看起来很好并且可以正常工作。但是当我设置两个旋转(x和z)时,旋转看起来像这样:

diamond rotation fail

我错过了什么吗?某种程度上,对象局部坐标系是否已旋转,现在围绕2轴旋转会失败?

diamond.position = brilliantPositions[i][0];
diamond.rotation = brilliantPositions[i][1];
this.frames.arrangementMesh.add(diamond);

提前感谢您的提示 亲切的问候 罗曼和帕特里克

2 个答案:

答案 0 :(得分:5)

欧拉订单确实为我们解决了问题。在我们的例子中,我们不得不做下面的事情

diamond.eulerOrder = 'ZYX';

为了让计算采取正确的方式。非常感谢!

Here's more information about euler order

PS:我不能接受评论作为答案WestLangley因此我只是提高了它并在此重新发布了解决方案

答案 1 :(得分:1)

我建议使用lookAt()函数,然后围绕其中一个轴应用旋转。对于几乎任何类型的太空旋转来说,这应该足够好了。