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

How do I set a Three.js Plane rotation with an Object3D's local rotation?

我有一个 Plane, and a Group 对象,它有一个旋转。我需要将平面的表面法线设置为始终根据组的旋转进行旋转(此旋转根据用户输入而变化)。

我试过这样的事情,工作方式:

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

问题是旋转的幅度似乎太小:飞机的旋转与orbitGroup的旋转不完全匹配。

我不太了解线性代数,我仍在学习向量点和叉积之类的东西。我敢肯定有一个简单的解决方案,更有知识的人可以帮助我修复。

组或网格等 3D 对象的默认前向矢量是 (0, 0, 1)。如果将表面法线设置为此值并应用组的四元数,您应该会得到所需的结果。

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