【问题标题】:threejs rotation by x and z works individually but fails togetherx 和 z 的threejs 旋转单独工作,但一起失败
【发布时间】:2013-05-23 16:29:53
【问题描述】:

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

我错过了什么吗?物体局部坐标系是否以某种方式旋转,现在围绕 2 个轴旋转失败?

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

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

【问题讨论】:

  • 查看this 答案以了解有关three.js r.58 中欧拉旋转的解释。

标签: three.js webgl


【解决方案1】:

欧拉顺序确实为我们解决了问题。在我们的例子中,我们必须执行以下操作

diamond.eulerOrder = 'ZYX';

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

Here's more information about euler order

PS:我无法接受评论作为答案 WestLangley,因此我只是将其升级并在此处重新发布解决方案

【讨论】:

  • 现在我可以在 8 小时内接受我自己的答案 oO 这东西很奇怪......然后我会在 8 小时内回来
  • 这些天它被重命名了。我认为 rotation.order 是新属性
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-21
    • 2015-04-26
    • 1970-01-01
    • 2012-12-16
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多