Three.js - Как повернуть объект, чтобы посмотреть на одну точку и ориентироваться на другую

Я новичок в Three.js и 3D программировании в целом, так что это может показаться очень простым вопросом. В идеале, я надеюсь, что ответ поможет мне понять основные принципы.

У меня есть объект, который нужноточка» в другой точке (в данном случае, для простоты), что можно легко сделать с помощьюObject3D.lookAt(point) функция. Это хорошо указывает на ось Z объекта.

Я также хочу повернуть мой объект, называемыйlookerвокруг своей оси Z, так что его ось X в целом указывает на другой объект,refObj, Я знаю, что ось X можетт указывают прямо наrefObj если этот объект не произойдет, сформируйте прямой угол с началом координат. Я хочу ось Xlooker лежать на плоскости, созданной,originrefObj а такжеlooker, как показано ниже:

Казалось бы, самый простой способ сделать вращение - это изменитьlooker.rotation.zно я нене знаю, как рассчитать, какое значение должно быть.

В общем хотелось бы расширенную версиюlookAt функция, которая принимает вторую координату, на которую будет ориентирована ось X. Что-то вроде этого:

function lookAtAndOrient(objectToAdjust, pointToLookAt, pointToOrientXTowards)
{
  // First we look at the pointToLookAt
  objectToAdjust.lookAt(pointToLookAt);

  // Then we rotate the object
  objectToAdjust.rotation.z = ??;
}

Я создалjsFiddle с приведенным выше примером

Ответы на вопрос(1)

Ваш ответ на вопрос