【问题标题】:World position of mesh is not updated after rotation旋转后不更新网格的世界位置
【发布时间】:2019-10-25 11:39:01
【问题描述】:

我在一个组中有三个立方体网格(A、B、C)。然后我将这些组作为一个层次结构。

A 组 -> B 组 -> C 组

我需要围绕世界轴旋转 B 组并找到网格 C 的位置。

为了绕世界轴旋转,我使用了here给出的代码

我有一个小的rotate_cubes 函数来执行旋转。旋转后,它会记录getWorldPosition() 的结果。但我没有得到更新的位置。我得到了立方体 C 的旧位置。

function rotate_cubes(group) {
 group.rotateAroundWorldAxis(make_vector3(), make_vector3(1, 0, 0), 15 * THREE.Math.DEG2RAD)

  let pos = make_vector3()
  cube3.getWorldPosition(pos)
  console.log(pos)
}

如何计算旋转后的位置?

感谢您的帮助。

【问题讨论】:

  • 您能否在应用旋转后尝试通过updateMatrixWorld() 更新B 组的世界矩阵?在下一步中,尝试检索网格 C 的世界位置。
  • 非常感谢@Mugen87!现在可以了。我错误地假设矩阵会自动更新。
  • 另外请将此添加为答案,以便我将其标记为答案。其他人会更容易找到。

标签: three.js


【解决方案1】:

在应用旋转后尝试通过Object3D.updateMatrixWorld() 更新B 组的世界矩阵。在下一步中,尝试检索网格 C 的世界位置。

three.js R105

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 2022-11-23
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多