Как установить вращение плоскости Three.js с локальным вращением Object3D? - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть Плоскость и Группа объектов, которые имеют вращение.Мне нужно установить нормаль поверхности плоскости, чтобы она всегда вращалась в соответствии с вращением группы (это вращение изменяется в зависимости от ввода пользователя).

Я пробовал такие вещи, которые работают:

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

Проблема в том, что величина вращения кажется слишком маленькой: вращение плоскости не совсем совпадает с вращением orbitGroup.

Я действительно не знаю линейной алгебры, и явсе еще узнаю о таких вещах, как векторная точка и перекрестные продуктыЯ уверен, что есть простое решение, которое кто-то более знающий может помочь мне исправить.

1 Ответ

0 голосов
/ 09 февраля 2019

Вектор по умолчанию для трехмерных объектов, таких как группы или сетки, равен (0, 0, 1).Если вы установите нормаль поверхности к этому значению и примените кватернион группы, вы должны получить желаемый результат.

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