代码之家  ›  专栏  ›  技术社区  ›  nnyby

如何使用Object3D的局部旋转设置Three.js平面旋转?

  •  1
  • nnyby  · 技术社区  · 7 年前

    Plane ,及 Group 具有旋转的对象的。我需要将平面的曲面法线设置为始终根据组的旋转进行旋转(此旋转根据用户输入进行更改)。

    我尝试过这样的工作,哪种工作:

    onGroupRotation() {
        const vec = orbitGroup.rotation.toVector3();
        orbitPlane.set(vec, 0);
    }
    

    问题是旋转的大小似乎太小:平面的旋转与平面的旋转不太匹配 orbitGroup .

    我不太懂线性代数,我还在学习向量点积和叉积。我相信有一个简单的解决方案,一个更有知识的人可以帮我解决。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Mugen87    7 年前

    三维对象(如组或网格)的默认正向向量为 (0, 0, 1) . 如果将曲面法线设置为该值并应用组的四元数,则应获得所需的结果。

    plane.normal.set( 0, 0, 1 ).applyQuaternion( group.quaternion );